ich hab mein Problem schon im engl. Forum geschildert, aber vielleicht ist es hier auch besser aufgehoben.
Ich hab zwei forms: in der ersten Form (select) soll der Benutzer eine Datum und eine Uhrzeit eingeben, die dann in einer Variablen vom typ string gespeichert wird, wenn der button zum starten der form 2 (test) gedrückt wird.
Ich bekomme auch ein Ergebnis in der Listview der FOrm2 aber das stimmt nicht. das eingegeben Datum mit der Uhrzeit wird im SQL statement als WHERE Bedingung nicht beachtet.
Wenn ich in MySQL das statement mit einem Datum im FOrmat yyyy-mm-dd hh:mm:ss eingebe, bekomme ich natürlich die richtige Ausgabe. Wenn ich in meinem Programm das Datum als yyyy-mm-dd eingebe, dann bekomme ich die Meldung: 2020-05-31 is not a valid date format.
Ich denke mal ich muss den string noch umwandeln??
Ich hab das auch nach vorherigen Forumeintrag mit den zwei folgenden Zeilen probiert, aber kein Erfolg
Form2.SQLQuery1.Params.CreateParam(ftDateTime, 'sqldta', ptInput);
Form2.SQLQuery1.ParamByName('sqldta').AsDateTime := dtA;
Könnt ihr mal bitte schauen? Anbei der Code der zwei Forms, ist nicht viel.
Code: Alles auswählen
unit select;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs,DB, StdCtrls;
type
{ TForm7 }
TForm7 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
procedure Button1Click(Sender: TObject);
private
public
end;
var
Form7: TForm7;
time1: TDateTime;
stringDateTime : string;
implementation
uses test;
{$R *.lfm}
{ TForm7 }
procedure TForm7.Button1Click(Sender: TObject);
begin
stringDatetime := Edit1.Text;
time1:= StrtoDateTimes (stringDatetime)
form8.ShowModal;
end;
end.
unit test;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ComCtrls,connect,DB, StdCtrls;
type
{ TForm8 }
TForm8 = class(TForm)
Label1: TLabel;
Label2: TLabel;
ListViewTest: TListView;
procedure FormShow(Sender: TObject);
private
public
end;
var
Form8: TForm8;
implementation
uses select;
{$R *.lfm}
{ TForm8 }
procedure addDatatoTest (ID,Delivery :string);
var
item : TListItem;
begin
item := form8.ListViewGeld.Items.Add;
item.caption := ID;
item.Subitems.Add(Delivery);
Form2.connectDB;
Form2.SQLQuery1.SQL.Text := 'SELECT * FROM test WHERE '''+stringDatetime+''' < delivery';
Form2.SQLQuery1.Open;
while not Form2.SQLQuery1.Eof do
begin
// Datenbank abfragen und füllen der Variablen
variableID := Form2.SQLQuery1.FieldByName('id').AsString;
sringDelivery := Form2.SQLQuery1.FieldByName('delivery').AsString;
addDatatoTest (stringID,stringDelivery);
Form2.SQLQuery1.next;
end;