Hallo zusammen,
ich stelle gerade von der
BDE auf DBX4 um. Leider bekomme ich im Moment immer die Fehlermeldung "Das Objekt war geöffnet".
Ich habe mir jetzt aus meinem Projekt folgende Kurzfassung erstellt:
Delphi-Quellcode:
procedure TfrmMainMenue.AddParameterDate(iWert: TDateTime; iCommand:TDBXCommand);
var
MyParameter : TDBXParameter;
dDT: TSQLTimeStamp;
begin
MyParameter := iCommand.CreateParameter;
with MyParameter do
begin
DataType := TDBXDataTypes.TimeStampType;
dDT:=DateTimeToSQLTimeStamp(iWert);
Value.SetTimeStamp(dDT);
end;
iCommand.Parameters.AddParameter(MyParameter);
end;
procedure TfrmMainMenue.Button3Click(Sender: TObject);
var
MyConnectionFactory: TDBXConnectionFactory;
MyConnectionProperties: TDBXProperties;
DB_Test : TDBXConnection;
MyCommand : TDBXCommand;
MyReader : TDBXReader;
begin
MyConnectionFactory := TDBXConnectionFactory.GetConnectionFactory;
MyConnectionProperties := MyConnectionFactory.GetConnectionProperties('BFS');
DB1 := MyConnectionFactory.GetConnection(MyConnectionProperties);
MyCommand := DB1.CreateCommand;
MyCommand.Parameters.ClearParameters;
MyCommand.Text := 'SELECT * FROM Unternehmenstamm WHERE (ChgDate_ID = ?) ORDER BY UnternehmenNr_ID';
AddParameterDate(StrToDate('01.01.1990'),MyCommand);
MyReader := MyCommand.ExecuteQuery;
while MyReader.Next do
ShowMessage(MyReader.Value['Name'].GetAnsiString);
MyCommand.Parameters.ClearParameters;
MyCommand.Text := 'SELECT * FROM Unternehmenstamm WHERE (ChgDate_ID = ?) ORDER BY UnternehmenNr_ID';
AddParameterDate(StrToDate('02.01.1990'),MyCommand);
MyReader := MyCommand.ExecuteQuery; // --> Fehlermeldung: 'Das Objekt war geöffnet'
while MyReader.Next do
ShowMessage(MyReader.Value['Name'].GetAnsiString);
end;
Immer wenn ich einen Befehl mit Parametern zum zweiten mal abschicke bekomme ich die Fehlermeldung.
Was mache ich da falsch?