PDA

Ver la Versión Completa : Resetear un TQuery


borlandpablo
29-11-2012, 14:09:58
Buenas, hay alguna función para resetear un TQuery? El problema que tengo es que tengo muchos formularios y cuando voy moviendome en ellos, si selecciono un registro de un DBGrid, el ComboBox del formulario al que he pasado no se carga entero, solo en el registro que he seleccionado.

Un saludo

Casimiro Notevi
29-11-2012, 14:23:00
No entiendo :confused:
Puedes cerrarlo: query.close

borlandpablo
29-11-2012, 14:28:07
No entiendo :confused:
Puedes cerrarlo: query.close

Si, eso lo hago siempre, exactamente en el evento FormHide del formulario, pero parece que la consulta se queda igual que antes (si se ha modificado en otro evento de otro formulario). Se puede hacer en otro evento mejor?

Casimiro Notevi
29-11-2012, 14:30:48
No sé, no veo tu programa, pero supongo que en el exit

JXJ
29-11-2012, 18:20:27
yo siempre le hago asi.

query.close;
query.sql.clear;
query.sql.add('aqui el sql nuevo');
query.execute;

borlandpablo
30-11-2012, 00:25:39
En el formulario o en la TQuery? y en que evento?

Un saludo.

ecfisa
30-11-2012, 01:11:00
Hola borlandpablo.

Como acertadamente te mencionaron:
No sé, no veo tu programa...
Creo que vas a tener que ponernos algo de código o explicar más detalladamente la lógica de tu programa para que podamos atinar alguna solución.

Saludos.:)

borlandpablo
30-11-2012, 10:33:36
Creo que lo explico bien en mi primer mensaje. Todas mis TQuerys tienen una consulta predeterminada (select * from [tabla]), y lo que quiero es resetear los TQuerys a esa forma predeterminada, ya que hago muchas consultas diferentes y diferentes formularios, por lo que cuando voy moviéndome por las diferentes pantallas y haciendo cosas, un ComboBox no se rellena del todo, en otra pantalla se queda 1 solo registro, etc..

Un saludo

Casimiro Notevi
30-11-2012, 12:32:25
Es que no existe eso de "resetear un query", si está cerrado es como si no 'existiese', query.close
No hay mucho más, por eso preguntamos todos que expliques bien lo que haces, cómo, dónde, cuándo, que pongas código, etc. porque no se entiende lo que quieres hacer.
Y lo único que has contestado es lo mismo que dijiste al principio, o sea, que no nos sirve porque no se entiende :)

ecfisa
30-11-2012, 17:09:38
Creo que lo explico bien en mi primer mensaje. Todas mis TQuerys tienen una consulta predeterminada (select * from [tabla]), y lo que quiero es resetear los TQuerys a esa forma predeterminada, ya que hago muchas consultas diferentes y diferentes formularios, por lo que cuando voy moviéndome por las diferentes pantallas y haciendo cosas, un ComboBox no se rellena del todo, en otra pantalla se queda 1 solo registro, etc..

Un saludo
Hola.

Ahora creo que entiendo, deseas restaurar la cadena SQL a su valor original. Bueno es simple, basta con salvar la cadena SQL en una variable previamente, hacer las operaciones que desees y luego restaurarla.

A modo de ejemplo:

...
AnsiString OldStrSQL;

void __fastcall TForm1::FormCreate(TObject *Sender)
{
// Cadena asignada en diseño en OldStrSQL
OldStrSQL = tuQuery->SQL->Text;
tuQuery->Close();
// asignar nuevo valor
tuQuery->SQL->Text = "SELECT XXX, YYY FROM TU_TABLA";
tuQuery->Open();
}

void __fastcall TForm1::btnRestauraClick(TObject *Sender)
{
tuQuery->Close();
// Restaurar consulta
tuQuery->SQL->Text = OldStrSQL;
tuQuery->Open();
}


Saludos.

Casimiro Notevi
30-11-2012, 17:15:10
Ahora creo que entiendo, deseas restaurar la cadena SQL a su valor original.
Debes ser un muy buen entendedor, porque yo no deduzco eso por ningún sitio :D
Porque de algo como: "¿cómo restauro la sentencia sql original a un query?
A algo como: "resetear un tquery"
:confused:

ecfisa
30-11-2012, 17:32:15
Debes ser un muy buen entendedor, porque yo no deduzco eso por ningún sitio :D
Porque de algo como: "¿cómo restauro la sentencia sql original a un query?
A algo como: "resetear un tquery"
:confused:
A mi también me descolocó lo de "Resetear un TQuery" :confused:. Pero por el último mensaje creo que se refiere a restaurar la cadena SQL a la consulta original.

Saludos. :)

borlandpablo
01-12-2012, 17:43:21
Muchas gracias ecfisa, siempre haces diana!

casimiro siento no haberme expresado para tu entender.

Un saludo a los dos.

Casimiro Notevi
01-12-2012, 17:52:11
casimiro siento no haberme expresado para tu entender.
A ver si para la siguiente :)
Saludos.