Scusami, mi sono spiegato molto male , anzi mi sono dimenticato di aggiungere altre spiegazioni!
Questo é il codice che generare il comando SQL :
codice:
Str_Filtro.Text:= 'SELECT * FROM T_Noleggi WHERE( ( ';
Str_Filtro.Text:=Str_Filtro.Text + '( ( ( DataInizio >= :PeriodoInizio )AND( DataInizio <= :PeriodoFine ) )';
Str_Filtro.Text:=Str_Filtro.Text + 'OR ( ( DataFine >= :PeriodoInizio2 )AND( DataFine <= :PeriodoFine2 ) ) )';
Str_Filtro.Text:=Str_Filtro.Text + 'OR ( ( OpzioneFine >= :PeriodoInizio1 )AND( OpzioneFine <= :PeriodoFine1 ) )';
Str_Filtro.Text:=Str_Filtro.Text + ') AND ( RifIDBarca=:Barca ) AND ( RifIDSocietà=:Soc ) )';
Str_Filtro.Text:=Str_Filtro.Text + ' ORDER BY (OpzioneFine) DESC';
Successivamente ho fatto una procedura che controlla i dati inseriti e se tutto é corretto allora passa alla definizione dei parametri in questo modo:
codice:
with U_DataM_Generale.DataM_Generale.Q_Noleggi do
begin
Close;
SQL.Text:=comando.Text;
ParamByName('Barca').AsInteger:=U_DataM_Generale.DataM_Generale.Q_Barca['IDBarca'];
ParamByName('Soc').AsInteger:= 1;
ParamByName('PeriodoInizio').AsDate:= StartOfTheMonth(Data);
ParamByName('PeriodoFine').AsDate:= EndOfTheMonth(Data);
ParamByName('PeriodoInizio1').AsDate:= StartOfTheMonth(Data);
ParamByName('PeriodoFine1').AsDate:= EndOfTheMonth(Data);
ParamByName('PeriodoInizio2').AsDate:= StartOfTheMonth(Data);
ParamByName('PeriodoFine2').AsDate:= EndOfTheMonth(Data);
Open;
First;
end;
Solo che appena apre la query mi compare l'errore : Data non ammessa - valore null ;
E' molto strano perché in runtime quando mi posiziono col cursore sopra la variabile Data, mi appare il valore corrispondente in cifre!