|
Postada em 23/06/2004 12:00 hs
Olá pessoal ! tenho um sistema de gestão comercial e na frente de caixa utilizo o sequinte codigo para gravar os itens que estão no flexgrid mas quando o meu banco estava com setenta mil registro esta rapido a gravação, agora esta muito lento, sera que alquem tem uma forma mais rapida e eficaz para me ajudar. O PROCEDIMENTO QUE ESTOU UTILIZANDO É SEQUINTE: Private Sub incluibanco9874561() Dim SSQL As String Dim B As Integer Dim C As Integer For B = 1 To i - 1 Set KDTb = New ADODB.Recordset With KDTb .Open "TBFrente", KDConexão, adOpenDynamic, adLockOptimistic .AddNew .Fields("CodigoVenda") = lblCOdigo.Caption .Fields("Data") = Date .Fields("CodProduto") = Trim(MSFlexConsulta.TextMatrix(B, 1)) Set KDTBProduto = New ADODB.Recordset With KDTBProduto .Open "Update Tbproduto set QuantEstoque = quantEstoque - " & MSFlexConsulta.TextMatrix(B, 3) & _ " Where CodProduto =" & MSFlexConsulta.TextMatrix(B, 1), KDConexão, adOpenDynamic, adLockOptimistic End With .Fields("Quantidade") = MSFlexConsulta.TextMatrix(B, 3) .Fields("CodCliente") = CodCliente.Text .Fields("valor") = CCur(MSFlexConsulta.TextMatrix(B, 4)) .Fields("Total") = CCur(MSFlexConsulta.TextMatrix(B, 5) - CCur(MSFlexConsulta.TextMatrix(B, 5) * CCur(Desconto.Text) / 100)) .Fields("ValorTotal") = CCur(ValorTotal.Text) .Fields("Restante") = CCur(MSFlexConsulta.TextMatrix(B, 5) - CCur(MSFlexConsulta.TextMatrix(B, 5) * CCur(Desconto.Text) / 100)) .Fields("CodVendedor") = Vend.Text .Fields("Horas") = Time .Fields("CodFornecedor") = IIf(IsNull(codFornecedor.Text) = True, "Null", codFornecedor.Text) .Fields("Situacao") = "" .Fields("CodConvenio") = CodConveniada.Text .Fields("CodAtendente") = MDI.st.Panels(6).Text If CodCliente.Text <> 0 Then .Fields("Bloquear") = Date + 30 End If If TPVenda.Text = "Dinheiro" Then .Fields("Situacao") = Empty .Fields("DtPagamento") = Empty End If .Fields("TipoVenda") = TPVenda.Text .Update End With Next B End Sub
|
|
|
|
|
Postada em 23/06/2004 12:13 hs
Olá pessoal ! tenho um sistema de gestão comercial e na frente de caixa utilizo o sequinte codigo para gravar os itens que estão no flexgrid mas quando o meu banco estava com setenta mil registro estava rapido a gravação, agora esta muito lento, sera que alquem tem uma forma mais rapida e eficaz para me ajudar.
O PROCEDIMENTO QUE ESTOU UTILIZANDO É SEQUINTE: Private Sub incluibanco9874561() Dim SSQL As String Dim B As Integer Dim C As Integer For B = 1 To i - 1 Set KDTb = New ADODB.Recordset With KDTb .Open "TBFrente", KDConexão, adOpenDynamic, adLockOptimistic .AddNew .Fields("CodigoVenda") = lblCOdigo.Caption .Fields("Data") = Date .Fields("CodProduto") = Trim(MSFlexConsulta.TextMatrix(B, 1)) Set KDTBProduto = New ADODB.Recordset With KDTBProduto .Open "Update Tbproduto set QuantEstoque = quantEstoque - " & MSFlexConsulta.TextMatrix(B, 3) & _ " Where CodProduto =" & MSFlexConsulta.TextMatrix(B, 1), KDConexão, adOpenDynamic, adLockOptimistic End With .Fields("Quantidade") = MSFlexConsulta.TextMatrix(B, 3) .Fields("CodCliente") = CodCliente.Text .Fields("valor") = CCur(MSFlexConsulta.TextMatrix(B, 4)) .Fields("Total") = CCur(MSFlexConsulta.TextMatrix(B, 5) - CCur(MSFlexConsulta.TextMatrix(B, 5) * CCur(Desconto.Text) / 100)) .Fields("ValorTotal") = CCur(ValorTotal.Text) .Fields("Restante") = CCur(MSFlexConsulta.TextMatrix(B, 5) - CCur(MSFlexConsulta.TextMatrix(B, 5) * CCur(Desconto.Text) / 100)) .Fields("CodVendedor") = Vend.Text .Fields("Horas") = Time .Fields("CodFornecedor") = IIf(IsNull(codFornecedor.Text) = True, "Null", codFornecedor.Text) .Fields("Situacao") = "" .Fields("CodConvenio") = CodConveniada.Text .Fields("CodAtendente") = MDI.st.Panels(6).Text If CodCliente.Text <> 0 Then .Fields("Bloquear") = Date + 30 End If If TPVenda.Text = "Dinheiro" Then .Fields("Situacao") = Empty .Fields("DtPagamento") = Empty End If .Fields("TipoVenda") = TPVenda.Text .Update End With Next B End Sub
|
|
|
|-tom-|
|
CATANDUVA SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 23/06/2004 15:35 hs
olha eu nao sei a sua opiniao, depende do nr de maquinas q usam esse sistema em rede, mais e se vc utilizasse o DAO em vez do ADO a sua conexao seria muito mais rapido, pq eu digo isso , pq o ADO ele é bom qdo vc tem mais de 30 maquinas em rede. Ok
------------------------------------------------------------------------------------------------------------------------------------------------------------------------- tom -Catanduva/SP Analista Sistemas - Visual Basic 6 - VB.NET "Confiai perpetuamente no Senhor, porque o Senhor Deus é uma Rocha Eterna" Isaías 26:4
|
|
|
|
Postada em 23/06/2004 18:58 hs
TOM Eu tenho 18 maquinas em rede. vc acha o que estou fazendo é redudância? E o que você achou do loop ?
|
|
|
ganbity
não registrado
|
|
ENUNCIADA !
|
|
|
Postada em 24/06/2004 07:51 hs
concordo com o tom, dao com certeza v. vai ter no minimo 40% de melhora na velocidade
|
|
|
|