Einzelnen Beitrag anzeigen

GroHae

Registriert seit: 19. Apr 2007
Ort: Nabburg
83 Beiträge
 
Delphi 2007 Enterprise
 
#1

Fehlermeldung: 'Das Objekt war geöffnet' bei ExecuteQuery

  Alt 5. Mai 2008, 13:03
Datenbank: MSSQL • Zugriff über: DBX4
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?
Grüße

Thomas
  Mit Zitat antworten Zitat