Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   ayuda con AdoDataSet su CommandText y una functions (https://www.clubdelphi.com/foros/showthread.php?t=64106)

jhcaboverde 17-03-2009 20:43:30

ayuda con AdoDataSet su CommandText y una functions
 
Haber tengo un Forms con un tAdoDataset, un tmemo, un tedit, un tDBgrid, y una base de datos en access. Tengo dos tcombox que lo que necesito es que al cambiar change los combos se actualice la cadena de texto que le paso al tmemo y con ello seria el sql que utiliza el adodataset para filtrar los datos.

Cuando actualizo el tmemo con la cadena lo hace ok pero siempre me pone una ultima linea del try 'error en datos' y solo queria que saliera eso cuando la cadena pasada al adodataset tuviera errores, a lo mejor estoy utilizando mal el try.

Recuerden tengo tres combobox con este mismo codigo:

procedure TANEXO1.F_INICIOChange(Sender: TObject);
begin
Edit1.Text :=DateToStr( F_INICIO.DateTime +6 );
Memo1.Lines.Clear;
Memo1.lines.add('select * from ANEXO_1' + ' where PAIS=' + QuotedStr(Combobox1.Text) +
' and AREA=' + QuotedStr(AREA.Text) + ' and S_F_INICIO=#' + datetostr(f_inicio.DateTime) +
'# and S_F_FIN=#' + edit1.Text + '# order by PAIS, FECHA_VTTO;');

AdoDataSet1.Close;
AdoDataSet1.CommandText:=memo1.Text;
AdoDataSet1.Active :=True;
try
Memo1.Lines.Add('error en datos')
finally

end;
end;

ContraVeneno 17-03-2009 23:03:59

Pues sí, el programa hace exatamente lo que le dices. :D

Tal vez esto sea lo que buscas:
Código Delphi [-]
procedure TANEXO1.F_INICIOChange(Sender: TObject);
begin
  Edit1.Text :=DateToStr( F_INICIO.DateTime +6 );
  Memo1.Lines.Clear;
  Memo1.lines.add('select * from ANEXO_1');
  Memo1.lines.add('where PAIS=' + QuotedStr(Combobox1.Text));
  Memo1.lines.add('and AREA=' + QuotedStr(AREA.Text) );
  Memo1.lines.add('and S_F_INICIO=#' + datetostr(f_inicio.DateTime) +'#');
  Memo1.lines.add('and S_F_FIN=#' + edit1.Text + '#'
  Memo1.lines.add('order by PAIS, FECHA_VTTO;');

Try
 AdoDataSet1.Close;
 AdoDataSet1.CommandText:=memo1.Text;
 AdoDataSet1.Active :=True;
 Except
 on E:Exception do begin
 Showmessage('Error en datos: '+E.ClassName+'-'+E.ErrorMsg);
 memo1.Lines.Add('error en datos')
 end;
end;

jhcaboverde 18-03-2009 17:06:17

Sql, AdoDataSet y consulta
 
mira el arreglo que tuve que hacer por que no me deja compilar

Showmessage('Error en datos: '+E.ClassName+'-');//+E.ErrorMsg);

el error es:

[DCC Error] Unit2.pas(96): E2003 Undeclared identifier: 'ErrorMsg'
[DCC Warning] Unit2.pas(96): W1058 Implicit string cast with potential data loss from 'string' to 'ShortString'
[DCC Fatal Error] PROY.dpr(6): F2063 Could not compile used unit 'Unit2.pas'

ContraVeneno 18-03-2009 17:38:13

si, creo que es "E.Msg", no lo recuerdo de memoria, pero si presionas F1 en Delphi para revisa rla ayudar, ahí encontrarás la información necesaria.


La franja horaria es GMT +2. Ahora son las 00:10:03.

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