Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Problemas con el ParambyName (https://www.clubdelphi.com/foros/showthread.php?t=76332)

giancarlorc 23-10-2011 18:48:04

Problemas con el ParambyName
 
Estimado Club
Saludos Cordiales desde Venezuela
a Continuacion explico:

Les presento el codigo que uso en el Boton que Cree para rellenar un DBGRID-
Código Delphi [-]
procedure TF_Procesar.AdvGlowButton2Click(Sender: TObject);
var SelBancos:string;
begin
    SelBancos:=DBLC_Bancos.Text; {Asigno a la Variable SelBancos el Banco q selecciono en el TDBLookupComboBox,
    if SelBancos <> '' then
    begin
        DBGrid1.Visible:=True; {Muestro en pantalla el DBGRID }
        DB_Query.Close;{close the query}
        //assign new SQL expression
        DB_Query.SQL.Clear;
        DB_Query.SQL.Add ('SELECT FTB_FECHA,FTB_DOCUMENTO, FTB_MONTO, FTB_BENEFICIARIO,');
        DB_Query.SQL.Add ('FTB_CONCEPTO FROM STRANSBANCO WHERE ');
        DB_Query.SQL.Add ('STRANSBANCO.FTB_NUMEROCONCILIACION=0 ');
        DB_Query.SQL.Add('AND STRANSBANCO.FTB_BANCO = BANCOS');
        DB_Query.Params.CreateParam(ftString,'BANCOS');
        DB_Query.ParambyName('BANCOS').aSSTRING:=DBLC_Bancos.Text;
        DB_Query.RequestLive := True;
        DB_Query.Open; {open query + display data}

    end;
end;
Segun me comentaron tengo que incluir los Parametros dentro del Componente TDBISAMQuery, pero al querer hacerlo en la Propiedad
Params, me muestra la ventana donde se ve que puedo incluirlos pero los botones estan desactivados, es decir no puedo
darles Clic.
Ahora, como ven en el codigo, yo uso la siguiente instruccion: DB_Query.Params.CreateParam(ftString,'BANCOS');
que por lo que puedo entender estaria haciendo justamente la creacion del Parametro dentro del Query.

Al compilarlo no me da ningun error, pero al ejecutarlo me da el siguiente error al darle clic al boton:
DBISAM Engine Error #11949 SQL parsing error - Expected Column
name but instead found BANCOS in SELECT SQL statement at line 4
column 29.

Por lo q entiendo es algo que tiene que ver con el Parametro que le envio.

Para tratar de explicarme lo mejor posible, tengo un Componente TDBLookupComboBox,
que relleno con la lista de los bancos de la tabla sbancos.dat (DBISAM), posteriormente al seleccionarlo
y darle clic al boton "Procesar" deberia mostrar en un dbrig que tengo creado la informacion
filtrada por el sql que cree.

Esperando puedan ayudarme
Saludos Cordiales

Giancarlo Reyes
Consultor a2 Softway

ecfisa 23-10-2011 19:27:06

Hola Giancarlos y bienvenido a los foros de Club Delphi. :)

Como a todo recién ingresado te invitamos a que leas nuestra Guía de estilo.

Si no omitiste detalle al presentar el código, creo que el error esta en la línea:
Código Delphi [-]
  DB_Query.SQL.Add('AND STRANSBANCO.FTB_BANCO = BANCOS');
Los nombres de parámetros deben ir precedidos del signo ':', entonces sería:
Código Delphi [-]
 DB_Query.SQL.Add('AND STRANSBANCO.FTB_BANCO = :BANCOS');

Por último te aconsejo que encierres tu código Delphi entre las etiquetas [delphi] [/delphi] para darle más legibilidad al código.

Un saludo.:)


La franja horaria es GMT +2. Ahora son las 15:00:43.

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