![]() |
query
hola a todos
tengo un query llamado qtotal, en el que realizo todas las busquedas, pero cuando hago una busqueda en la que no se encuentren tuplas, quiero no perder las tuplas de la ultima busqueda, es decir: 1º busqueda encuentro 3 tuplas, 2º busqueda encuentro 0 tuplas --> recuparar las 3 tuplas anteriores he creado un query llamado qaux en el que hago antes de la busqueda: qaux:=qtotal; hago la busqueda y si las tuplas son 0, le asigno denuevo al qtotal el qaux: qtotal:=qaux pero no funciona, pierda la informacion, por lo visto supongo que asignara la direccion de inicio del query qtotal. espero alguna solucion. muchas gracias. |
mediante qaux:=qtotal lo que realmente estas haciendo es que qaux apunte a qtotal, es decir, realmente no está haciendo una copia de todos sus contenidos (lo que normalmente se hace en delphi con el método assing() )
si lo que quieres es hacer una segunda consulta sin relanzar la primera deberás tener dos objetos query separados, luego puedes mostrar uno u otro cambiando la propiedad dataset del TDatasource |
Yo tuve que realizar algo parecido y lo hice así:
hago la primera consulta me da 3 resultados, pues guardo en un stringlist la clave primaria de esos 3 registros, ahora modifico la consulta y lanzo de nuevo la consulta, si da 0 resultados, en el stringlist ya tengo los resultados. En mi caso particular creé dos rutinas auxiliares: CambiaQuery(qry:Tquery; nueva_clausaula_SELECT:string); nuevoStringList := guardaResultadosToTstring(qry:Tquery); // funcion que crea y devuelve un Tstringlist; Saludos |
La franja horaria es GMT +2. Ahora son las 12:12:42. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi