jbaca | |
| 2009-03-11 16:15 - Respuestas: 4 - Tema nº: 2579857
Características: Windows 2000 2 gb ram, DualCore Intel a 2x1600 mhz, 137 gb hd.
Hola!! utilizo de forma esporádica Visual Basic 6.0 para leer una base de datos DB2 en AS400.
Tengo el siguiente código Visual Basic :
RstTcAdmif.Open "SELECT * FROM condición”, , , , adCmdUnknown
Do while not e
' tratar registro y tareas vairas
(1)
' leer siguiente fila
RstTcAdmif.Movenext
Loop
RstTcAdmif.Close
Vamos a suponer, que después de ejecutar SELECT, hay un conjunto de 3 filas encontradas.
Entramos en el DO WHILE, y después de tratar la primera fila (punto 1), hay otro proceso que graba un fila en esta misma tabla.
Pregunta : ¿ésta última fila dada de alta la tendrá en cuenta la SELECT?
Yo creo que no, la fila dada de alta la leerá realmente cuando se haga un nuevo SELECT.
A ver si me lo podéis aclarar los que habitualmente trabajáis con SQL y Visual Basic.
Muchas gracias y un saludo,
Javier
| |
|
|
coldgeorge | |
|
Re: Consulta importante sobre Sql - 2009-03-11 21:39 - Respuesta 2
Cuando usas "Select * from tutabla where id = ' " text1 " ' " por ejemplo, estás indicando todos los registros que cumplan la condición dada. para eso es el asterisco, pero si escribes: "select from tutabla where id = ' " text " ' " sólo pides el registro que cumpla la condición.
No es necesario que escribas todas las demás líneas, eso es suficiente | |
|
|
jbaca | |
|
Re: Consulta importante sobre Sql - 2009-03-11 22:26 - Respuesta 3
Eso está claro, pero no me has entendido la pregunta.
No te preocupes, ya me lo han aclarado por otro lado.
Muchas gracias de todas formas.
Un saludo,
Javier | |
|
|
TheTourist | |
|
Re: Consulta importante sobre Sql - 2009-03-11 22:38 - Respuesta 4
Hola
Si encontraste la solucion podrias ponerla aqui para asi ayudar a alguien que tenga tu misma duda.
Respondiendo a esto.
Cuando ejecutas una consulta SQL, esta detiene la ejecucion de la aplicacion hasta que la respuesta de la consulta se reciba completa.
Cuando la respuesta se recibio, recien alli el programa salta a la siguiente linea que seria la "Do while not eof"
Esta respuesta es almacenada en memoria en la variable RstTcAdmif, por lo tanto si ingresas algo en la misma tabla mientras haces el bucle While, eso que ingresaste no se tomara en cuenta porque el programa esta trabajando con lo que hay guardado en RstTcAdmif.
Si quieres que el programa lea lo que ingresaste, tienes que volver a ejecutar un SELECT.
Saludos! | |
|
|
jbaca | |
|
Re: Consulta importante sobre Sql - 2009-03-12 09:21 - Respuesta 5
Gracias, sí, la solución es la que tú comentas.
Javier | |
|
|
|