Visual Basic - Desbordamiento por consulta SQL

Life is soft - evento anual de software empresarial
 
Vista:

Desbordamiento por consulta SQL

Publicado por raymundo calvo (10 intervenciones) el 22/05/2006 15:46:49
Hola a todos tengo un problema de desbordamiento causado por abrir tantas veces una consulta a mi bd, el codigo que se ejecuta me determina si un articulo existe en mi bd si no existe lo agrega y si existe lo actualiza, los datos del articulo los traigo de un archivo de excel voy leyendo cada registro y de un campo que se llama Codigo lo utilizo para buscar ese articulo en mi bd pero la consulta esta dentro de un ciclo yo se que cada vez que se abre una consulta esta esta en memoria asi que pongo el objeto en nothing pero aun asi se desborda la memoria la cargar 250 registros que por lo tanto se abrio 250 veces esa consulta no se de que otra forma se pueda realizar este procedimiento espero que me puedan ayudar de ante mano gracias les pongo el codigo para que le heche un vistazo:

Private Sub Command1_Click()
Dim conn As New ADODB.Connection
Dim rcsx As New ADODB.Recordset

'On Error Resume Next
i = 0
x = 0
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & nombrefichero & ";" & _
"Extended Properties=""Excel 8.0;HDR=yes;"""

rcsx.Open "SELECT * FROM [ACTUALIZACION$]", conn, adOpenStatic, adLockOptimistic
Do While Not rcsx.EOF
RCS.Open "SELECT * FROM Catalogo where Cod_Prov='" & rcsx!codigo & "'", CNN
*******este recordset es donde hago la consulta y busco el articulo en mi bd***********
If RCS.RecordCount <> 0 Then
i = i + 1
CmUPDATE(0) = rcsx!precio
CmUPDATE(1) = rcsx!codigo
CmUPDATE.Execute
ElseIf RCS.RecordCount = 0 Then
x = x + 1
CmNEW(0) = rcsx!prov
CmNEW(1) = rcsx!codigo
CmNEW(2) = "00000000000000"
CmNEW(3) = rcsx!Descripcion
CmNEW(4) = rcsx!Empaque
CmNEW(5) = rcsx!Ext
CmNEW(6) = rcsx!precio
CmNEW.Execute
End If
rcsx.MoveNext
RCS.Close
Set RCS = Nothing
Loop
MsgBox "Numero de Articulos Nuevos: " & x & " !" & (Chr(13) & Chr(10)) & "Numero de articulos Actualiazdos " & i & " !", vbOKOnly, "SUFASOFT"

End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder