Ir a una fila en un Query
- TOTOVIOTTI
- Posts: 430
- Joined: Fri Feb 05, 2010 11:30 am
- Location: San Francisco - Córdoba - Argentina
- Has thanked: 5 times
Ir a una fila en un Query
Hola,
tengo una consulta de una tabla hecha con un query,
cada vez que añado una fila, necesito mover mi puntero
a esa nueva posición.
Uso Dolphin y hago el Insert, y luego Refresh para actualizar la consulta, pero como muevo
el puntero a ese last_insert_id?
Hago nombre_tabla:Goto() pero a donde?
Espero que se entienda lo que necesito...
Gracias
Roberto
tengo una consulta de una tabla hecha con un query,
cada vez que añado una fila, necesito mover mi puntero
a esa nueva posición.
Uso Dolphin y hago el Insert, y luego Refresh para actualizar la consulta, pero como muevo
el puntero a ese last_insert_id?
Hago nombre_tabla:Goto() pero a donde?
Espero que se entienda lo que necesito...
Gracias
Roberto
- karinha
- Posts: 7941
- Joined: Tue Dec 20, 2005 7:36 pm
- Location: São Paulo - Brasil
- Been thanked: 3 times
- Contact:
Re: Ir a una fila en un Query
http://forum.imasters.com.br/topic/283365-last-insert-id/
http://forum.imasters.com.br/topic/467263-php-pdo-last-insert-id/
http://forum.imasters.com.br/topic/458330-last-insert-id/
http://forums.fivetechsupport.com/viewtopic.php?f=3&t=24596&start=0
http://www.pctoledo.com.br/forum/viewtopic.php?f=43&t=14332
Salu2
http://forum.imasters.com.br/topic/467263-php-pdo-last-insert-id/
http://forum.imasters.com.br/topic/458330-last-insert-id/
http://forums.fivetechsupport.com/viewtopic.php?f=3&t=24596&start=0
http://www.pctoledo.com.br/forum/viewtopic.php?f=43&t=14332
Salu2
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
- TOTOVIOTTI
- Posts: 430
- Joined: Fri Feb 05, 2010 11:30 am
- Location: San Francisco - Córdoba - Argentina
- Has thanked: 5 times
Re: Ir a una fila en un Query
Karinha,
gracias pero no me sirve lo del last_insert_id, sé que existe, lo utilizo.
"Last_insert_id" arroja el id de la última fila agregada, pero la consulta es:
Como hago mover el puntero a esa fila??
Gracias
Roberto
gracias pero no me sirve lo del last_insert_id, sé que existe, lo utilizo.
"Last_insert_id" arroja el id de la última fila agregada, pero la consulta es:
Como hago mover el puntero a esa fila??
Gracias
Roberto
Re: Ir a una fila en un Query
Buenas tardes.
Y no te sirve oRs:MoveLast() ?
http://www.w3schools.com/asp/ado_ref_recordset.asp
Saludos.
Y no te sirve oRs:MoveLast() ?
http://www.w3schools.com/asp/ado_ref_recordset.asp
Saludos.
- TOTOVIOTTI
- Posts: 430
- Joined: Fri Feb 05, 2010 11:30 am
- Location: San Francisco - Córdoba - Argentina
- Has thanked: 5 times
Re: Ir a una fila en un Query
Ricardo,
gracias por la respuesta, no uso ADO, estoy usando TDolphin, no me sirve esa función...
Gracias!
Roberto
gracias por la respuesta, no uso ADO, estoy usando TDolphin, no me sirve esa función...
Gracias!
Roberto
- karinha
- Posts: 7941
- Joined: Tue Dec 20, 2005 7:36 pm
- Location: São Paulo - Brasil
- Been thanked: 3 times
- Contact:
- TOTOVIOTTI
- Posts: 430
- Joined: Fri Feb 05, 2010 11:30 am
- Location: San Francisco - Córdoba - Argentina
- Has thanked: 5 times
Re: Ir a una fila en un Query
Karinha y los que me puedan ayudar, ahora estoy haciendo:
oServer:Insert("ausentes",aFields,aValues)
oQuery:=oServer:Query("SELECT LAST_INSERT_ID() AS nLast FROM ausentes LIMIT 1")
MOVEDOR:=oQuery:nLast
oQuery:End()
ausentes:refresh() // para refrescar el query
y, para hacer mover el puntero a MOVEDOR, que es donde necesito, hago:
ausentes:find(MOVEDOR,"id")
pero éste find, cuando las tablas son grandes, demora mucho, por eso, necesito
buscar otra forma de mover el puntero como si fuera un goto(), pero ésta función
no me sirve, porque no sé el recno() del registro insertado.
Espero haber sido un poco más claro.
Gracias!
Roberto
oServer:Insert("ausentes",aFields,aValues)
oQuery:=oServer:Query("SELECT LAST_INSERT_ID() AS nLast FROM ausentes LIMIT 1")
MOVEDOR:=oQuery:nLast
oQuery:End()
ausentes:refresh() // para refrescar el query
y, para hacer mover el puntero a MOVEDOR, que es donde necesito, hago:
ausentes:find(MOVEDOR,"id")
pero éste find, cuando las tablas son grandes, demora mucho, por eso, necesito
buscar otra forma de mover el puntero como si fuera un goto(), pero ésta función
no me sirve, porque no sé el recno() del registro insertado.
Espero haber sido un poco más claro.
Gracias!
Roberto
- karinha
- Posts: 7941
- Joined: Tue Dec 20, 2005 7:36 pm
- Location: São Paulo - Brasil
- Been thanked: 3 times
- Contact:
Re: Ir a una fila en un Query
http://forums.fivetechsupport.com/viewtopic.php?t=9052
http://tdolphin.blogspot.com.br/2010/07/xbrowse.html
Salu2
http://tdolphin.blogspot.com.br/2010/07/xbrowse.html
Salu2
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
- TOTOVIOTTI
- Posts: 430
- Joined: Fri Feb 05, 2010 11:30 am
- Location: San Francisco - Córdoba - Argentina
- Has thanked: 5 times
Re: Ir a una fila en un Query RESUELTO
Gracias Ricardo y Karinha.
Opté por oQuery:Goto(oQuery:Lastrec()), no creí que el LastRec() funcionara de ésta manera,
mi duda estaba en que si la fila que insertaba, se iba al ppio de la consulta por el order by, igual
sigue manteniendo el Lastrec().
Gracias!
Roberto
Opté por oQuery:Goto(oQuery:Lastrec()), no creí que el LastRec() funcionara de ésta manera,
mi duda estaba en que si la fila que insertaba, se iba al ppio de la consulta por el order by, igual
sigue manteniendo el Lastrec().
Gracias!
Roberto
- Biel EA6DD
- Posts: 682
- Joined: Tue Feb 14, 2006 9:48 am
- Location: Mallorca
- Contact:
Re: Ir a una fila en un Query
Asumo que la tabla tiene como clave primaria el campo "id" y que es autonumérico.
oQuery:Goto(oQuery:Lastrec()) es lo mismo que oQuery:GoBottom(). Y si no me falla la teoria esto se posiciona en el último registro de la consulta, y SI se ve afectado por el order. LastRec() devuelve el total de filas en la consulta, no el último id introducido.
El problema de find es que la búsqueda es secuencial, y la velocidad depende directamente del número de registros. Se puede usar seek que es mucho más rápido, pero necesita que este ordenado por el campo que vamos a buscar, en este caso si esta ordenado por ID, sera casi lo mismo hacer GoBottom(), con la salvedad de que otros usuario hayan introducido registros, en ese caso tiene sentido hacer un seek, pues puede que el registro que acaba de introducir el usuario ya no sea el último, Last Inert Id es local a cada cliente.
Suponiendo que esta ordenado por Id, puedes hacerlo como habías expuesto al principio, pero cambiando find por seek.
oQuery:Goto(oQuery:Lastrec()) es lo mismo que oQuery:GoBottom(). Y si no me falla la teoria esto se posiciona en el último registro de la consulta, y SI se ve afectado por el order. LastRec() devuelve el total de filas en la consulta, no el último id introducido.
El problema de find es que la búsqueda es secuencial, y la velocidad depende directamente del número de registros. Se puede usar seek que es mucho más rápido, pero necesita que este ordenado por el campo que vamos a buscar, en este caso si esta ordenado por ID, sera casi lo mismo hacer GoBottom(), con la salvedad de que otros usuario hayan introducido registros, en ese caso tiene sentido hacer un seek, pues puede que el registro que acaba de introducir el usuario ya no sea el último, Last Inert Id es local a cada cliente.
Suponiendo que esta ordenado por Id, puedes hacerlo como habías expuesto al principio, pero cambiando find por seek.
Code: Select all | Expand
oServer:Insert("ausentes",aFields,aValues)
MOVEDOR:=oServer:LastInsertId()
ausentes:refresh() // para refrescar el query
ausentes:Seek(MOVEDOR,"id")
- TOTOVIOTTI
- Posts: 430
- Joined: Fri Feb 05, 2010 11:30 am
- Location: San Francisco - Córdoba - Argentina
- Has thanked: 5 times
Re: Ir a una fila en un Query
Biel,
lo estuve probando, y aparentemente sale bien con el LastRec(), voy a seguir probando para ver si
está correcto lo que estoy haciendo.
No obstante, no me sirve la opción de ORDEN BY id, porque tengo mis queries hechos y ordenados,
se trata de insertar e ir a esa fila en el orden que está la consulta...
Creí que debía ser más fácil...
Gracias!
Roberto
lo estuve probando, y aparentemente sale bien con el LastRec(), voy a seguir probando para ver si
está correcto lo que estoy haciendo.
No obstante, no me sirve la opción de ORDEN BY id, porque tengo mis queries hechos y ordenados,
se trata de insertar e ir a esa fila en el orden que está la consulta...
Creí que debía ser más fácil...
Gracias!
Roberto