Autor Beitrag
Das S
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 101

Win XP
D7 Prof
BeitragVerfasst: Fr 23.04.04 18:01 
Hi,

ich habe versucht, eine Unit zu schreiben, die eine Datenbankverbindung herstellt. Diese Unit wiederrum soll durch eine andere verwendet werden durch übergabe des Datenbankverzeichnisses. Hier der Code der Unit, die die Verbindung herstellen soll:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,db,ADODB;


//dynamisch zusammengesetzt dbconnector
procedure dbconnect(verzeichnis:widestring);

implementation

procedure dbconnect(verzeichnis:widestring);
var typecon:TADOconnection;
begin
try
typecon.ConnectionString:='';
typecon.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+verzeichnis+';Persist Security Info=False';
typecon.LoginPrompt:=false;
typecon.Connected:=true;
application.MessageBox('Test erfolgreich','Hinweis',64);
except
application.MessageBox('DATENBANKVERBINDUNG ZUR DATENBANK NICHT ERFOLGREICH','Hinweis',16);

end;
end;

end.


Hier der Code, der die Unit2 verwendet:

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  StdCtrls, DB, ADODB, unit2;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
unit2.dbconnect('e:\SOURCECODE\VERWALTUNG\DB\bla.mdb');
end;

end.


Vielleicht noch eines: Das ist meine erste unit die ich schreibe. Bitte habt verständnis, wenn es nicht so gut ist, wie es sein sollte. Und bitte nicht so eine ultrakurze Antwort. :oops:

Liebe Grüße

Steffen

Moderiert von user profile iconPeter Lustig (18:03, 23.04.2004): Delphi-Tags hinzugefügt
Moderiert von user profile iconPeter Lustig (18:29, 23.04.2004): Großschreibung in Titel beruhigt


Zuletzt bearbeitet von Das S am Fr 23.04.04 18:05, insgesamt 1-mal bearbeitet
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Fr 23.04.04 18:04 
Hallo!

Bitte ändere den Titel des Topics da er wenig über das eigentlich Thema verrät. Hier der entsprechende Absatz aus den Delphi-Forum.de Richtlinien:

Richtlinien hat folgendes geschrieben:

1.1 Beiträge
Bitte formuliere den Betreff Deiner Beiträge so, dass andere Mitglieder anhand dieser bereits das eigentliche Thema festmachen können. Beiträge wie etwa "Eine Anfängerfrage" oder "Weiß jemand, wie das geht?" lassen den Leser im Unklaren darüber, was das Thema der Diskussion ist.[...]

Einfach oben bei deinem ersten Beitrag auf "Edit" klicken und den Titel ändern. Dank Dir!

Gruß Peter Lustig

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
raziel
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2453

Arch Linux
JS (WebStorm), C#, C++/CLI, C++ (VS2013)
BeitragVerfasst: Fr 23.04.04 18:15 
du warst zwar nicht grad redselig was dein problem angeht, aber dank eines kleinen blickes in meine zauberkugel dürfte klar sein, was das problem is... 8)

probier doch einfach mal zunächst deine TADOConnection zu createn:
ausblenden Delphi-Quelltext
1:
typecon := TADOConnection.Create(self);					

und am ende wieder freigeben:
ausblenden Delphi-Quelltext
1:
typecon.Free;					

natürlich macht das wenig sinn, erst zu connecten und dann gleich wieder zu disconnecten (free), deshalb solltest du noch mindestens die funktion "Disconnect" einbauen. Dazu müsstest du typecon in der unit2 global deklarieren...
ich hoff die antwort war dir nich zu kurz ;-)


raziel

//edit: btw kannst du das "unit2." vor "dbconnect" weglassen, es sei denn es gibt noch eine unit mit der funktion dbconnect!

_________________
JSXGraph
Das S Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 101

Win XP
D7 Prof
BeitragVerfasst: Fr 23.04.04 18:43 
Vielen Dank, kann mir jetzt noch einer verraten, wie ich zum Beispiel diesen Verbindungsstring in einem ADOTABLE anbringen kann. So geht es jedenfalls nicht: adotable1.connection:=unit2.dbconnect;