![]() |
ADOConnection.Open macht Probleme in einer Funktion
Hallo,
ist das ein Feature, Bug oder ein Fehler in meinem Quelltext? Öffne ich in einer Funktion eine ADOConnection und schließe sie wieder - mache das gleiche nach einer Minute nochmal(in diesem Testprojekt Button1 wird gedrückt) -> Fehler: Im Project "..." ist eine Exception der Klasse EOleException aufgetreten. Meldung 'Schwerwiegender Fehler'. Prozess wurde angehalten ... Der Fehler liegt bei der Funktion aus der ADODB (Zeile: 1577) Wird aber "Test" als Prozedure und nicht als Function deklariert, dann funktioniert es!? Könnt ihr das mal bitte überprüfen. Bei mir baut die ADOConnection eine Verbindung zu einer Informixdatenbank auf (Provider = Ifxoledbc.2). System mit dieser Fehlermeldung: Windows XP Pro Auf einem Win200 System konnte dieser Fehler nicht reproduziert werden.
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, StdCtrls, Buttons, DB, ADODB; type TForm1 = class(TForm) DBConnection: TADOConnection; ADODataSet1: TADODataSet; Button1: TButton; Button2: TButton; procedure Button1Click(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private-Deklarationen } function Test : boolean; public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} const //Parameter: Passwort, User, Datenbank, Server dbConnectionString = 'Provider=Ifxoledbc.2;Password=%s;Persist Security Info=True;User ID=%s;Data Source=%s@%s'; function TForm1.Test : boolean; begin if DBConnection.Connected then DBConnection.Close; DBConnection.ConnectionString := format(dbConnectionString, [...]); //ausgeblendet, verrate doch nicht unsere Passwörter ;) DBConnection.Open; if DBConnection.Connected then DBConnection.Close; end; procedure TForm1.Button1Click(Sender: TObject); begin test; end; procedure TForm1.FormDestroy(Sender: TObject); begin if adodataset1.Active then adodataset1.Close; if dbconnection.Connected then dbconnection.Close; end; procedure TForm1.FormCreate(Sender: TObject); begin test; end; end. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:31 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz