Visual Basic - Update y Select en la misma conexion

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil

Update y Select en la misma conexion

Publicado por Raul (1 intervención) el 10/10/2015 06:37:59
Saludos, mi problema es el siguiente.

Estoy intentando Actualizar un campo de una tabla en particular y luego en la misma conexion traerme los datos actualizados a un recordset, esto lo hago ya que la aplicacion trabaja mediante internet y necesito hacer estos dos procesos en una sola conexion!!.

este codigo me saca el error 3704, la operacion no esta permitida si el objeto esta cerrado.

Nota: Si cambio el orden y en vez de update primero, coloco el select y luego el update, funciona el codigo, pero me trae los datos al recordset antes de la actualizacion...

Alguna idea?

Aca el codigo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Dim conn As ADODB.Connection
Dim results As ADODB.Recordset
Dim SqlStr As String
Set conn = New ADODB.Connection
 
conn.ConnectionTimeout = 1000
conn.Open ConnectionString
conn.CursorLocation = adUseClient
 
SqlStr = "UPDATE data.registro_detalle SET monto = 0; " & _
"SELECT * FROM data.registro_detalle "
 
Set results = conn.Execute(SqlStr, N)
 
MsgBox results.RecordCount & " " & results!monto
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
Imágen de perfil de Wilfredo Patricio Castillo
Val: 8
Ha aumentado su posición en 9 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Update y Select en la misma conexion

Publicado por Wilfredo Patricio Castillo (260 intervenciones) el 10/10/2015 21:23:00
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Dim conn As ADODB.Connection
Dim results As ADODB.Recordset
Dim SqlStr As String
Set conn = New ADODB.Connection
 
conn.ConnectionTimeout = 1000
conn.Open ConnectionString
conn.CursorLocation = adUseClient
 
SqlStr = "UPDATE data.registro_detalle SET monto = 0;
conn.Execute(SqlStr)
results.Open "SELECT * FROM data.registro_detalle",conn,adLockReaOnly,OtraOpcionQuenoRecuerdo
 
if results.recordcount>0 then
mesgbox("Existen datos")
else
msgbox("No se encontraton datos")
endif


Espero te ayude, lo de otra opcion que no recuerdo, es porque ya VB6.0 lo dejé hace como 10 años.

Saludos cordiales,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar