Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Resetear un TQuery (https://www.clubdelphi.com/foros/showthread.php?t=81605)

borlandpablo 29-11-2012 14:09:58

Resetear un TQuery
 
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

Cita:

Empezado por Casimiro Notevi (Mensaje 450848)
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.
Código SQL [-]
 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:
Cita:

Empezado por Casimiro Notevi (Mensaje 450851)
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

Cita:

Empezado por borlandpablo (Mensaje 450944)
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:
Código:

...
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

Cita:

Empezado por ecfisa (Mensaje 450981)
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

Cita:

Empezado por Casimiro Notevi (Mensaje 450982)
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

Cita:

Empezado por borlandpablo (Mensaje 451053)
casimiro siento no haberme expresado para tu entender.

A ver si para la siguiente :)
Saludos.


La franja horaria es GMT +2. Ahora son las 08:12:45.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi