Jump to content

Gravação em BD


almamater
 Share

Recommended Posts

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.

Link to comment
Share on other 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.

Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Link to comment
Share on other 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

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.