• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

almamater

Gravação em BD

3 mensagens neste tópico

Olá!

Venho apenas perguntar se estou a utilizar o método certo para gravação numa BD em access.

Basicamente tenho uma ListBox e vou gravar cada Item da mesma numa BD.. ora, se existirem 700 Items para aí no 110 fica muito mais lenta gravação.. pergunto apenas se faço bem desta forma ou se existe algo que possa melhorar:

For I = 0 To ListBox1.Items.Count - 1

'Isto para me devolver o ID actual na BD: 

            Dim MyData = New DataSet()
            strSQL = "Select * From TABELA Order BY ID ASC"
            Dim DaAdapter = New OleDb.OleDbDataAdapter(strSQL, ConectBaseDados)
            DaAdapter.Fill(MyData, "TABELA")
            Dim iMax = Me.BindingContext(MyData, "TABELA").Count
            
'Aqui vai assim inserir o registo na BD:
          
strSQL = "Insert Into TABELA (.....) Values (...)"
            Dim ocon As OleDbConnection = New OleDbConnection(ConectBaseDados)
            Dim ocmd As OleDbCommand = New OleDbCommand(strSQL, ocon)

                ocon.Open()
                ocmd.ExecuteNonQuery()
                ocmd.Dispose()
                ocon.Close()         
Next

Obrigado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Para já, podias trazer só o ID para ires buscar o último, assim:

SELECT ID FROM TABELA ORDER BY ID DESC

Depois, se ias contar o número de linhas devolvidas como estás a contar, não precisavas da ordenação para nada:

SELECT ID FROM TABELA

Já agora... para quê ir buscar todos os registos? Basta ler o último ID do resultado, em vez de contar as linhas todas:

SELECT TOP 1 ID FROM TABELA ORDER BY ID DESC

Já poupavas uma série de dados e processamentos inúteis.

Depois, melhorando ainda mais, livravas-te desse bloco apenas por utilizar a numeração automática no Access.

Assim, quem gere o ID é o próprio motor de BD e tu só te tens de preocupar em inserir.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Para já, podias trazer só o ID para ires buscar o último, assim:

SELECT ID FROM TABELA ORDER BY ID

Já poupavas uma série de dados inúteis.

Depois, melhorando ainda mais, livravas-te desse bloco apenas por utilizar a numeração automática no Access.

Assim, quem gere o ID é o próprio motor de BD e tu só te tens de preocupar em inserir.

Fixe fixe!! vou alterar isso sim

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora