Hallo,
da ich absolut nicht mehr weiter weiss, wende ich mich nun an euch.
Testaufbau:
Ich habe eine db1.mdb in der sich eine Tabelle1 befindet mit den Feldern ID (AutoWert), Datum(FDatum/Zeit) und Text (Text). Ein Datensatz ist angelegt : 1, 17.12.2004 08:30, Hallo
Auf meinem Formular ist ein Button1, ein Edit1 , eine ADOConnection und ein ADODataset1.
folgenden Code dazu:
<PRE>
unit frm_STMain;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ADODB, Db, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
ADOConnection1: TADOConnection;
ADODataSet1: TADODataSet;
ADOQuery1: TADOQuery;
Edit1: TEdit;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
ADOConnection1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source= D:\Ausbildung\Projekte\Delphi\SQLTest\db1.mdb';
ADOConnection1.Connected := true;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
with Form1.ADODataset1 do
begin
Close;
CommandText:= 'SELECT * FROM Tabelle1 WHERE (((Tabelle1.Datum) = #12/17/2004 08:30:0#))';
Open;
end;
Edit1.Text := ADODataSet1.FieldByName('Text').AsString;
end;
end.
</PRE>
und bei Button1Click kommt folgende Exception:
"Ein parameter Objekt ist nicht Ordnungsgemäss definiert"
Ich hab auch schon die Klammern im SQL weggelassen und auch nur das Tabelle1.Datum in Klammern gesetzt. Trotzdem kein Erfolg.Es kommt dann die Exception das ADODataset das Statement bei einer geschlossenen Datenmenge nicht ausführen kann. Kann es mit dem Jet4.0 zusammenhängen?
Wie würdet ihr denn so ein Datum/Zeit Feld mit Delphi abfragen? Es muss auf jeden fall auch die Zeit mit Abgefragt werden! Ich sitz jetzts chon seit 2Tagen daran und fande keine Lösung an die Daten zu kommen. Das Problem ist, ich kann die tabelle nicht umgestallten. Es muss also Datum und uhrzeit in dem Datum/Zeit Feld stehen. Kann mir jemand helfen?
Vielen Dank
Dragi
da ich absolut nicht mehr weiter weiss, wende ich mich nun an euch.
Testaufbau:
Ich habe eine db1.mdb in der sich eine Tabelle1 befindet mit den Feldern ID (AutoWert), Datum(FDatum/Zeit) und Text (Text). Ein Datensatz ist angelegt : 1, 17.12.2004 08:30, Hallo
Auf meinem Formular ist ein Button1, ein Edit1 , eine ADOConnection und ein ADODataset1.
folgenden Code dazu:
<PRE>
unit frm_STMain;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ADODB, Db, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
ADOConnection1: TADOConnection;
ADODataSet1: TADODataSet;
ADOQuery1: TADOQuery;
Edit1: TEdit;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
ADOConnection1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source= D:\Ausbildung\Projekte\Delphi\SQLTest\db1.mdb';
ADOConnection1.Connected := true;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
with Form1.ADODataset1 do
begin
Close;
CommandText:= 'SELECT * FROM Tabelle1 WHERE (((Tabelle1.Datum) = #12/17/2004 08:30:0#))';
Open;
end;
Edit1.Text := ADODataSet1.FieldByName('Text').AsString;
end;
end.
</PRE>
und bei Button1Click kommt folgende Exception:
"Ein parameter Objekt ist nicht Ordnungsgemäss definiert"
Ich hab auch schon die Klammern im SQL weggelassen und auch nur das Tabelle1.Datum in Klammern gesetzt. Trotzdem kein Erfolg.Es kommt dann die Exception das ADODataset das Statement bei einer geschlossenen Datenmenge nicht ausführen kann. Kann es mit dem Jet4.0 zusammenhängen?
Wie würdet ihr denn so ein Datum/Zeit Feld mit Delphi abfragen? Es muss auf jeden fall auch die Zeit mit Abgefragt werden! Ich sitz jetzts chon seit 2Tagen daran und fande keine Lösung an die Daten zu kommen. Das Problem ist, ich kann die tabelle nicht umgestallten. Es muss also Datum und uhrzeit in dem Datum/Zeit Feld stehen. Kann mir jemand helfen?
Vielen Dank
Dragi
Comment