ich behelfe mir im Moment damit, dass ich zuerst immer MyCommand.Free aufrufe um dann MyCommand neu zu erstellen. Aber das kann doch nicht so gedacht sein...
Delphi-Quellcode:
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');
DB_Test := MyConnectionFactory.GetConnection(MyConnectionProperties);
MyCommand := DB_Test.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('1 ' + MyReader.Value['Name'].GetAnsiString);
MyCommand.Free; // wieder freigeben...
MyCommand := DB_Test.CreateCommand; //.. und dann neu erstellen
MyCommand.Parameters.ClearParameters;
MyCommand.Text := 'SELECT * FROM Unternehmenstamm WHERE (ChgDate_ID = ?) ORDER BY UnternehmenNr_ID';
AddParameterDate(StrToDate('01.01.1990'),MyCommand);
MyReader := MyCommand.ExecuteQuery; // Jetzt geht es
while MyReader.Next do
ShowMessage('2 ' + MyReader.Value['Name'].GetAnsiString);
MyCommand.Free;
end;