Hallo,
versuche zu ermitteln ob ein Fahrer zu einer bestimmten Zeit bereits besetzt ist. Dafür habe ich folgendne Quelltext geschrieben:
<PRE>
****************************************
//***Ermittlung ob Fahrer besetzt
procedure TfrmAuftrag.DBEditEndezeitChange(Sender: TObject);
var //iTemp: Integer;
besetzt: Boolean;
begin
qryFahrer.SQL.Clear;
qryFahrer.ConnectionString:=ADO_PROVIDER;
qryFahrer.SQL.Add('select * from FAHRT where starttag='+#39+DBEditStarttag.Text+#39+' and Fahrer='+#39+Fahrer+#39+'+');
qryFahrer.Open;
besetzt:=False;
if qryFahrer.Recordset.RecordCount>0 then
qryFahrer.First;
repeat
//Startzeit überschneidet sich
if(qryFahrer['Startzeit']<=strtodatetime(DBEditStartzeit.Text)) and
(qryFahrer['Endezeit']>=strtodatetime(DBEditStartzeit.Text)) then besetzt:=True;
//Endzeit überschneidet sich
if(qryFahrer['Startzeit']<=strtodatetime(DBEditEndezeit.Text)) and
(qryFahrer['Endezeit']>=strtodatetime(DBEditEndezeit.Text)) then besetzt:=TRUE;
//komplette Überschneidung Anfang und Ende
if(qryFahrer['Startzeit']<=strtodatetime(DBEditStartzeit.Text)) and
(qryFahrer['Endezeit']<=Strtodatetime(DBEditEndezeit.Text))
then
besetzt:=TRUE;
//Überschneidung, Start und Ende liegen innerhalb einer anderen Fahrt
if(qryFahrer['Startzeit']<=strtodatetime(DBEditStartzeit.Text))and(qryFahre r['Endezeit']<=strtodatetime(DBEditEndezeit.Text))then
besetzt:=TRUE;
qryFahrer.Next;
until qryFahrer.Eof or besetzt;
if besetzt
then
ShowMessage('Der Fahrer ist zu dieser Zeit besetzt!');
end;
************************************
</PRE>
Jetzt bekomme ich aber immer die Fehlermeldung: Invalid constant
Leider finde ich die invalid constant nicht, da ich ja auch keine Konstante benutzt habe. Wo liegt denn mein Fehler?
Gruß
Gabi
versuche zu ermitteln ob ein Fahrer zu einer bestimmten Zeit bereits besetzt ist. Dafür habe ich folgendne Quelltext geschrieben:
<PRE>
****************************************
//***Ermittlung ob Fahrer besetzt
procedure TfrmAuftrag.DBEditEndezeitChange(Sender: TObject);
var //iTemp: Integer;
besetzt: Boolean;
begin
qryFahrer.SQL.Clear;
qryFahrer.ConnectionString:=ADO_PROVIDER;
qryFahrer.SQL.Add('select * from FAHRT where starttag='+#39+DBEditStarttag.Text+#39+' and Fahrer='+#39+Fahrer+#39+'+');
qryFahrer.Open;
besetzt:=False;
if qryFahrer.Recordset.RecordCount>0 then
qryFahrer.First;
repeat
//Startzeit überschneidet sich
if(qryFahrer['Startzeit']<=strtodatetime(DBEditStartzeit.Text)) and
(qryFahrer['Endezeit']>=strtodatetime(DBEditStartzeit.Text)) then besetzt:=True;
//Endzeit überschneidet sich
if(qryFahrer['Startzeit']<=strtodatetime(DBEditEndezeit.Text)) and
(qryFahrer['Endezeit']>=strtodatetime(DBEditEndezeit.Text)) then besetzt:=TRUE;
//komplette Überschneidung Anfang und Ende
if(qryFahrer['Startzeit']<=strtodatetime(DBEditStartzeit.Text)) and
(qryFahrer['Endezeit']<=Strtodatetime(DBEditEndezeit.Text))
then
besetzt:=TRUE;
//Überschneidung, Start und Ende liegen innerhalb einer anderen Fahrt
if(qryFahrer['Startzeit']<=strtodatetime(DBEditStartzeit.Text))and(qryFahre r['Endezeit']<=strtodatetime(DBEditEndezeit.Text))then
besetzt:=TRUE;
qryFahrer.Next;
until qryFahrer.Eof or besetzt;
if besetzt
then
ShowMessage('Der Fahrer ist zu dieser Zeit besetzt!');
end;
************************************
</PRE>
Jetzt bekomme ich aber immer die Fehlermeldung: Invalid constant
Leider finde ich die invalid constant nicht, da ich ja auch keine Konstante benutzt habe. Wo liegt denn mein Fehler?
Gruß
Gabi
Comment