Einzelnen Beitrag anzeigen

GroHae

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

Re: Fehlermeldung: 'Das Objekt war geöffnet' bei ExecuteQue

  Alt 6. Mai 2008, 16:46
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;
Grüße

Thomas
  Mit Zitat antworten Zitat