Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Ayuda Con Recordset Porfavor!!!

Estas en el tema de Ayuda Con Recordset Porfavor!!! en el foro de Visual Basic clásico en Foros del Web. Hola a todos, ahorita ando apuradisimo con un problema que se me presento, miren, mi sistema estaba en Access pero por cuestiones de hacerlo mas ...
  #1 (permalink)  
Antiguo 27/12/2006, 09:39
 
Fecha de Ingreso: febrero-2006
Mensajes: 56
Antigüedad: 18 años, 2 meses
Puntos: 0
Ayuda Con Recordset Porfavor!!!

Hola a todos, ahorita ando apuradisimo con un problema que se me presento, miren, mi sistema estaba en Access pero por cuestiones de hacerlo mas multiusuario lo cambio todo a SQL Server, pero ahora me esta dando unos problemas con el recordset, me sale:

Error '-2147418113 (8000ffff)' en tiempo de ejecución :
Error Catastrofico


me marca error cuando utilizo la propiedad del recordset ".movenext" y ya llegue al final de lo registros. Por lo que he leido, algo hace SQL Server que no se que con los indices del adodb.recordset. pero ya hice algunas cosas y no me jala, alguien sabe a que se deba??

Do While Not grsServicio.EOF
With gconServicio
.BeginTrans
.Execute _
"SET IDENTITY_INSERT TempGrid ON INSERT INTO...........
End With
grsServicio.MoveNext
Loop
(Omiti el Query para que quepa mejor en el post)

Este es el ciclo que uso pero me marca error cuando el movenext ya cae en el .eof.

Alguien me puede ayudar??? se los agradeceria mucho porque ando contra el tiempo con este proyecto en el trabajo.

Saludos y espero me puedan ayudar
  #2 (permalink)  
Antiguo 27/12/2006, 11:04
Avatar de tazzito  
Fecha de Ingreso: agosto-2006
Mensajes: 381
Antigüedad: 17 años, 9 meses
Puntos: 2
Re: Ayuda Con Recordset Porfavor!!!

creo que falta algo mas de codigo, como qe es grsServicio que trae etc
  #3 (permalink)  
Antiguo 27/12/2006, 11:08
 
Fecha de Ingreso: febrero-2006
Mensajes: 56
Antigüedad: 18 años, 2 meses
Puntos: 0
Re: Ayuda Con Recordset Porfavor!!!

grsServicio es el recordset que uso para leer una tabla en SQL Server que se llama servicio, ahi me traigo todos los datos de la tabla.


grsServicio.Open SQL, conexion, , , adCmdUnknown
  #4 (permalink)  
Antiguo 27/12/2006, 11:41
Avatar de tazzito  
Fecha de Ingreso: agosto-2006
Mensajes: 381
Antigüedad: 17 años, 9 meses
Puntos: 2
Re: Ayuda Con Recordset Porfavor!!!

y por que el

.BeginTrans

no lleva al final un CommitTrans o un rollbacks
  #5 (permalink)  
Antiguo 27/12/2006, 11:50
 
Fecha de Ingreso: febrero-2006
Mensajes: 56
Antigüedad: 18 años, 2 meses
Puntos: 0
Re: Ayuda Con Recordset Porfavor!!!

Primero yo leo una tabla en SQL Server de servicio donde obtengo las ordenes que se tienen activas en el sistema, y esas las copio en una tabla de apoyo que se llama TempGrid, para poder manipularlas ahi y en la otra dejarlas par futuras consultas...

El recordset de la tabla servicio, lo copio a la otra tabla, lo hice asi porque se complicaba algo cuando una tabla estaba en Access y la otra en SQL Server, pero creo que puedo hacerlo directo en un query cierto??? ahorita que lo estoy pensando..... pero bueno el problema es ese, el .begintrans es para hacer el query para meter los datos del recorset (grsServicio.fields(0).Value) en la tabla TempGrid. y al final pues hago el commitTrans....si lo lleva pero lo borre sin querer.....


Do While Not grsServicio.EOF
With gconServicio
.BeginTrans
.Execute _
"SET IDENTITY_INSERT TempGrid ON INSERT INTO...........
.CommitTrans
End With
grsServicio.MoveNext
Loop


Saludos
  #6 (permalink)  
Antiguo 28/12/2006, 10:06
 
Fecha de Ingreso: febrero-2006
Mensajes: 56
Antigüedad: 18 años, 2 meses
Puntos: 0
Re: Ayuda Con Recordset Porfavor!!!

Hola, pues esa parte si la resolvi haciendolo mejor en un query. Pero otras secciones de mi codigo tienen que utilizar ese tipo de metodo que utilizo para mandar ordenes de produccion una por una, tons necesito ir recorriendo el recordset con el .movenext, aunque sigo teniendo el mismo problema

alguien me puede ayudar porfavor?!?!?! necesito sacar esto lo antes posible

Saludos
  #7 (permalink)  
Antiguo 28/12/2006, 11:24
Avatar de Mephisto  
Fecha de Ingreso: enero-2006
Ubicación: Mexico DF
Mensajes: 184
Antigüedad: 18 años, 4 meses
Puntos: 3
Re: Ayuda Con Recordset Porfavor!!!

Yo te sugeriria que abrieras la conexion de la base de datos una vez y que en el ciclo solo recorrieras lo registros. En caso de que la consulta varie te sugiero que cierres y abras constantemente la conexion a la BD. Anexo un codigo para cargar una combo desde una base de datos. Espero te sirva

'COMBO MODULOS
Set rsMyRecordset = New Recordset
With rsMyRecordset
.Source = "SELECT Nombre_Mod FROM Modulos"
.ActiveConnection = PantallaGestion.cnBDGestion
End With
rsMyRecordset.Open Options:=adCmdText

'Vincula el campo con el Record Generado
Set ModulosCb.DataSource = rsMyRecordset
'Carga la combo con el resulatado de la consulta
Do Until rsMyRecordset.EOF
ModulosCb.AddItem rsMyRecordset("Nombre_Mod")
rsMyRecordset.MoveNext
Loop
rsMyRecordset.Close
__________________
Saludos...

Todos somos sabios, solo que en diferentes disciplinas...
  #8 (permalink)  
Antiguo 28/12/2006, 17:04
 
Fecha de Ingreso: febrero-2006
Mensajes: 56
Antigüedad: 18 años, 2 meses
Puntos: 0
Re: Ayuda Con Recordset Porfavor!!!

Mephisto tu consejo me ayudo a resolver el problema, ese era, que cada vez que hacia el BeginTrans y el CommitTrans pues fallaba tons no podia modificar el siguiente registro porque en realidad ya no existe nada en el recordset porque se borro con el BeginTrans y el CommitTrans que hice....

Lo que hice fue hacer las operaciones en el recordset y luego hacer el .requery

.Filter = "CveOP = " & CveOP
.Delete
.Requery


ah y preguntar si el recordset quedo vacio antes de hacer el .movenext

If .EOF Then
Exit Do
Else
.MoveNext
End If



aunque con eso ya podia controlarlo como estaba, pero me gusta mas como quedo ahora

Y usar el recordset con:

rs.Open SQL_Sentencia, conexion, adOpenDynamic, adLockOptimistic

Y ya me jalo!!...Gracias por todo la verdad si necesitaba terminar eso!!!! muchas gracias....
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:32.