almamater Posted November 12, 2009 at 10:58 AM Report Share #295780 Posted November 12, 2009 at 10:58 AM 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 More sharing options...
ribeiro55 Posted November 12, 2009 at 11:07 AM Report Share #295784 Posted November 12, 2009 at 11:07 AM 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 More sharing options...
almamater Posted November 12, 2009 at 11:09 AM Author Report Share #295786 Posted November 12, 2009 at 11:09 AM 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 More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now