PDA

Ver la Versión Completa : ayuda con parametros en consulta


ronimaxh
10-03-2005, 15:33:05
Hola amigos del club, aqui les tengo una pregunta sobre parametros uso ado con access 2000. Aqui está mi código

begin
begin
with frmdata.consulta_cheque do
begin
if tipo=1 then //busqueda por beneficiario
begin
close;
sql.Text:='';
sql.Text:='select * from Vw_consulta_cheques where beneficiario like
'+''''+'%'+beneficiario.Text+'%'+''''+ 'and periodo ='+''''+rxperiodo.Text+'''';
open;
cantidad.Value:=recordcount;
end;


if tipo=2 then //busqueda por fecha
begin
close;
Parameters.ParamByName('fechai').Value:=fechai.Date;
Parameters.ParamByName('fechaf').Value:=fechaf.Date;
sql.text:='select * from Vw_consulta_cheques where fecha between
:fechai and :fechaf';
open;
cantidad.Value:=recordcount;
end;

if tipo=3 then //busqueda por monto
begin
close;
Parameters.ParamByName('montoi').Value:=montoi.Value;
Parameters.ParamByName('montof').Value:=montof.Value;
sql.text:='select * from Vw_consulta_cheques where monto between
:montoi and :montof';
open;
cantidad.Value:=recordcount;
end;
end;
end;



Nota: el problema es el siguiente cuando hago la consulta por un tipo (usando TRadiobuttun) me la trea bien, pero cuando cambio a otro tipo el error que me da es consulta_cheque: parameter 'fechai' no found.

Nota2: Estos parametros están definidos en tquery en la propiedad (TParameters) y no se por que da ese error si los tiene.

Nota3: Disculpen por no poner las etiquetas visuales, es que no se usarlas.

marcoszorrilla
10-03-2005, 18:51:22
Lo primero, te convendría más utilizar la estructura:

Case tipo of
1:
2:
3:
end;


En cuanto a las etiquetas no tienes más que escribir

ShowMessage('Ejemplo');
[/Delphi ]

El espacio al final es para que veas la estructura, sin el espacio quedaría así:

[delphi]
ShowMessage('Ejemplo');


En cuanto al error si unas funcionan y otras no es que alguna de las condiciones 1, 2, 3 está mal escrita, por qué no nos dices cuales funcionan correctamente y en donde te da el error exactamente.

Un Saludo.

ronimaxh
10-03-2005, 19:47:39
Gracias por el cambio que me le hiciste al mensaje, usaré la funcion case, y con respecto al error, lo que sucede es lo Sgte. cuando hago una busqueda por beneficiario la trea bien y despues quiero buscar por otro criterio sin cerrar el formulario cambiando al tipo fecha, parece que se les borran los parametros o algo asi, pero no se por que pasa.

marcoszorrilla
10-03-2005, 20:04:33
Añade
Sql.Clear;

Un Saludo.