Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   FDQuery.SQL.Add() da error (https://www.clubdelphi.com/foros/showthread.php?t=97569)

tomasgarcia 08-07-2025 11:48:19

FDQuery.SQL.Add() da error
 
1 Archivos Adjunto(s)
Ejecuto la siguiente setencia mediante el método Formshow de un formulario.;
Código Delphi [-]
        FDQuery1.SQL.Add('SELECT * FROM clients'  )  ;
y me arroja el error:(archivo adjunto)
Sin embargo en el query editor del FDQuery1, escribo la
misma sentencia y funciona sin problemas.
Saludos y gracias

Neftali [Germán.Estévez] 08-07-2025 12:20:28

Por favor, revisad la Guía de estilo de los foros.
Y utilizad TAGs en el código.

Neftali [Germán.Estévez] 08-07-2025 12:22:48

Cita:

Empezado por tomasgarcia (Mensaje 566213)
Ejecuto la siguiente setencia mediante el método Formshow de un formulario.;
Código Delphi [-]
        FDQuery1.SQL.Add('SELECT * FROM clients'  )  ;
y me arroja el error:(archivo adjunto)

A ver si tienes ya algo en esa propiedad y al hacer el Add estás metiendo más cosas de la cuenta.
Cambia esa línea por esta otra:

Código Delphi [-]
        FDQuery1.SQL.Text := 'SELECT * FROM clients';

roberto_valverde 08-07-2025 12:43:28

Cita:

Empezado por tomasgarcia (Mensaje 566213)
Ejecuto la siguiente setencia mediante el método Formshow de un formulario.;
Código Delphi [-]
        FDQuery1.SQL.Add('SELECT * FROM clients'  )  ;
y me arroja el error:(archivo adjunto)
Sin embargo en el query editor del FDQuery1, escribo la
misma sentencia y funciona sin problemas.
Saludos y gracias

Quizás estas cambiando la consulta estando ya Activo FDQuery1.

Código Delphi [-]
 FDQuery1.Close;
 FDQuery1.SQL.Clear;
 FDQuery1.SQL.Add('SELECT * FROM clients;'); <-- Añade ; a finalizar el select
 FDQuery1.Open;

Saludos

Casimiro Noteví 08-07-2025 20:55:02

Por favor, no olviden:

tomasgarcia 08-07-2025 22:48:02

FDQuery1.SQL.Add
 
Cita:

Empezado por roberto_valverde (Mensaje 566216)
Quizás estas cambiando la consulta estando ya Activo FDQuery1.

FDQuery1.Close;
FDQuery1.SQL.Clear;
FDQuery1.SQL.Add('SELECT * FROM clients;'); <-- Añade ; a finalizar el select
FDQuery1.Open;

Saludos

tampoco funciona. Da el mismo error.
Gracias

tomasgarcia 08-07-2025 22:49:22

FDQuery1.SQL.Add
 
Cita:

Empezado por Neftali [Germán.Estévez] (Mensaje 566215)
A ver si tienes ya algo en esa propiedad y al hacer el Add estás metiendo más cosas de la cuenta.
Cambia esa lÃ*nea por esta otra:

Código Delphi [-]
        FDQuery1.SQL.Text := 'SELECT * FROM clients';

Hola , da el mismo error

tomasgarcia 09-07-2025 00:14:55

FDQuery.SQL.Add() da error
 
Perdón , me equivoqué
FDQuery1.SQL.Text := 'SELECT * FROM clients;'; no da error.

tomasgarcia 09-07-2025 18:38:12

FDQuery1.SQL.Add no funciona
 
1 Archivos Adjunto(s)
He comprobado que ambas sentencias funcionan del mismo modo, cargan en el grid
la tabla entera.

Código Delphi [-]
procedure TConsClients.FormShow(Sender: TObject);
    begin
   editbuscar.SetFocus;
   FDQuery1.Active:=False;
   //FDQuery1.SQL.Text := 'SELECT * FROM clients;';
   FDQuery1.SQL.Add('SELECT * FROM  clients ; '  )  ;
   FDQuery1.Active:=True;
   combobox1.Clear;
   FDQuery1.Fields.GetFieldNames(Combobox1.Items)   ;
   combobox1.ItemIndex:=1;
  end;


Sin embargo, si en cualquiera de ella intento seleccionar uno o varios campos de la tabla,
deja de funcionar.
Código Delphi [-]
procedure TConsClients.FormShow(Sender: TObject);

    begin
   editbuscar.SetFocus;
   FDQuery1.Active:=False;
   //FDQuery1.SQL.Text := 'SELECT * FROM clients;';
   FDQuery1.SQL.Add('SELECT IDClient FROM  clients ; '  )  ;
   FDQuery1.Active:=True;
   combobox1.Clear;
   FDQuery1.Fields.GetFieldNames(Combobox1.Items)   ;
   combobox1.ItemIndex:=1;
  end
;

tomasgarcia 09-07-2025 18:42:00

La tabla
 
1 Archivos Adjunto(s)
La tabla clients tiene los siguientes campos: IDClients, CIF,Nombre,Direccion,C.P, Municipio

Casimiro Noteví 09-07-2025 19:45:10

Si no dices qué quieres conseguir.

tomasgarcia 09-07-2025 20:21:55

Solucionado
 
Hola , ya he encontrado el problema . Tenia todos los campos persistentes en tiempo de diseño.
Los eliminé y ya funciona.
gracias

roberto_valverde 10-07-2025 07:02:25

Cita:

Empezado por tomasgarcia (Mensaje 566247)
He comprobado que ambas sentencias funcionan del mismo modo, cargan en el grid
la tabla entera.

Código Delphi [-]
procedure TConsClients.FormShow(Sender: TObject);
    begin
   editbuscar.SetFocus;
   FDQuery1.Active:=False;
   //FDQuery1.SQL.Text := 'SELECT * FROM clients;';
   FDQuery1.SQL.Add('SELECT * FROM  clients ; '  )  ;
   FDQuery1.Active:=True;
   combobox1.Clear;
   FDQuery1.Fields.GetFieldNames(Combobox1.Items)   ;
   combobox1.ItemIndex:=1;
  end;


Sin embargo, si en cualquiera de ella intento seleccionar uno o varios campos de la tabla,
deja de funcionar.
Código Delphi [-]
procedure TConsClients.FormShow(Sender: TObject);

    begin
   editbuscar.SetFocus;
   FDQuery1.Active:=False;
   //FDQuery1.SQL.Text := 'SELECT * FROM clients;';
   FDQuery1.SQL.Add('SELECT IDClient FROM  clients ; '  )  ;
   FDQuery1.Active:=True;
   combobox1.Clear;
   FDQuery1.Fields.GetFieldNames(Combobox1.Items)   ;
   combobox1.ItemIndex:=1;
  end
;

Hola de nuevo, en la consulta FDQuery1.SQL.Add('SELECT IDClient FROM clients ; ' )
estas seleccionado un solo campo para mostrar en tu grid que es IDClient Los demás campos ya no están disponibles en el grid por eso salta el error.


La franja horaria es GMT +2. Ahora son las 06:57:01.

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