Hallo,
ich werde noch verückt Wenn ich die beiden Statements unten ausführe bekomme ich verschiedene Ergebnisse...
In ActualDate steht das Datum für welches ich die Datensätze haben will. Dieses wird dann mit ActivityDate in der
DB verglichen.
Verwende ich das zweite Statement werden die korrekten Daten ausgelesen.
Wenn ich das Statement mit den Parametern verwende, muss ich als Datum 15.10.2007 übergeben, um Datensatze zu erhalten die mit 16.10.2007 als ActivityDate in der
DB stehen
Delphi-Quellcode:
ADOQuery.SQL.Text :='SELECT * FROM TB_AM_Hours, TB_AM_Projects, TB_AM_ActivityType WHERE ' +
' FK_UserID = :FK_UserID '+
' and FK_ProgramID = :FK_ProgramID ' +
' and ActivityDate = :ActivityDate ' +
' and FK_ActivityTypeID = ActivityTypeID ' +
' and FK_ProjectID = ProjectsID ' +
' ORDER by HoursID;';
ADOQuery.Parameters.ParamByName('FK_UserID').Value := DM_ProjectPoint.CurrentUserData.UserID;
ADOQuery.Parameters.ParamByName('FK_ProgramID').Value := 1;
showmessage(DateToStr(ActualDate));
ADOQuery.Parameters.ParamByName('ActivityDate').Value := ActualDate;
ADOQuery.SQL.Text :='SELECT * FROM TB_AM_Hours, TB_AM_Projects, TB_AM_ActivityType WHERE ' +
' FK_UserID = ' + QuotedStr(DM_ProjectPoint.CurrentUserData.UserID) +
' and FK_ProgramID = 1' +
' and ActivityDate = ' + QuotedStr(DateToStr(ActualDate)) +
' and FK_ActivityTypeID = ActivityTypeID ' +
' and FK_ProjectID = ProjectsID ' +
' ORDER by HoursID;';
showmessage(ADOQuery.SQL.Text);
Beim Wegschreiben neuer Datensätze in die
DB mit Hilfe von Parmetrisierten
SQL Statements habe ich auch diesen Versatz von einem Tag. Da sich das aufhebt wenn man alles per parameter macht ist mir das erst sehr spät aufgefallen.
Wie kann denn sowas passieren??
Thanx
Marcus