Ciao a tutti,
eseguo una IBQuery premendo un pulsante e ne visualizzo il suo risultato in una DBGrid.
codice:
IBQuery1.Close;
IBQuery1.SQL.Clear;
IBQuery1.SQL.add('SELECT *');
IBQuery1.SQL.add(' from Movimenti');
if DBEdit1.Text <> '' then
begin
IBQuery1.SQL.add(' where');
IBQuery1.SQL.add(' fornitore like :PARAM1 ');
IBQuery1.ParamByName('Param1').AsString:= DBEdit1.Text ;
end;
IBQuery1.SQL.Add(' ORDER BY data');
IBQuery1.Open ;
questo codice funziona bene, se DBEdit1.Text e' = '' vengono visualizzati tutti i record della tabella Movimenti, se invece DBEdit1.Text e' = '13' vengono visualizzati solo i record del fornitore '13'......qui e' tutto ok!
...e' nata l'esigenza di poter modificare i valori di questa query, quindi ho sostituito l'oggetto IBQuery con un Oggetto IBdataset.
codice:
IBDataset1.Close;
IBDataset1.SelectSQL.Clear;
IBDataset1.SelectSQL.add('SELECT *');
IBDataset1.SelectSQL.add(' from Movimenti');
if DBEdit1.Text <> '' then
begin
IBDataset1.SelectSQL.add(' where');
IBDataset1.SelectSQL.add(' fornitore like :PARAM1 ');
IBDataset1.ParamByName('Param1').AsString:= DBEdit1.Text ;
end;
IBDataset1.SelectSQL.Add(' ORDER BY data');
// mia:= IBdataset1.selectsql.text;
IBDataset1.Open ;
con questo codice se DBEdit1.Text e' = '' vengono visualizzati tutti i record della tabella Movimenti, se invece DBEdit1.Text e' = '13' non viene ottenuto alcun risultato! IBdataset e' vuoto!
come se avesse problema con il parametro che gli passo.
ho controllato con il debugger il valore IBdataset1.selectsql.text e questo era = 'select * from fornitori where fornitore like :PARAM1 ORDER BY data'
a voi e' capitato mai?
grazie