AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi ADOConnection.Open macht Probleme in einer Funktion
Thema durchsuchen
Ansicht
Themen-Optionen

ADOConnection.Open macht Probleme in einer Funktion

Ein Thema von hitzi · begonnen am 16. Feb 2004
Antwort Antwort
Benutzerbild von hitzi
hitzi

Registriert seit: 2. Jan 2003
Ort: Eibau
768 Beiträge
 
Delphi 2010 Professional
 
#1

ADOConnection.Open macht Probleme in einer Funktion

  Alt 16. Feb 2004, 11:42
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.
Thomas
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz