![]() |
Datenbank: MSSQL • Version: 2005 • Zugriff über: ADO
ADOConnection auslagern in Unit
Hallo,
will für meine Anwendung die Datenbank Connection in eine Unit auslagern, da ich die Connection in der Anwendung an verschiedenen Orten benutzen muss. Nach dem ich ein bissel hier gesucht habe, sieht mein quellcode momentan so aus : (is nur ne beispiel anwendung ;) )
Delphi-Quellcode:
und die Unit2:unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DB, ADODB, Grids, DBGrids, StdCtrls, //Eigene Units die gebraucht werden Unit2; type TForm1 = class(TForm) DBGrid1: TDBGrid; Table: TADOTable; datasource: TDataSource; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} (* Per Knopfdruck soll nen DBGrid Daten aus der DB angezeigt werden, die Datasource ist dem Grid zugeteilt, der Datasource ist der Table zugeteilt dem table will ich per Code die sachen zuweisen *) procedure TForm1.Button1Click(Sender: TObject); begin //Table eine Connection zuweisen table.Connection:= unit2.connectionGeber(Application.Owner); //Tablenamen der Tabelle einstellen table.TableName:='Kunde'; //Table aktivieren table.Active:=true; end; end.
Delphi-Quellcode:
Die DB läuft auf dem selben rechner. Wenn ich die Connection so in die Form ziehe und den Connection String zusammen baue,
unit Unit2;
interface uses ADODB, Classes; function connectionGeber(comp:TComponent):TADOConnection; implementation function connectionGeber(comp:TComponent):TADOConnection; var con:TADOConnection; begin con:= con.Create(comp); con.Connected:=false; con.Provider:='SQLNCLI.1'; con.ConnectionString := 'Provider=SQLNCLI.1;Password=dasPW;Persist Security Info=True;User ID=derUser;Initial Catalog=derDBName'; con.LoginPrompt:=false; con.Connected:=true; con.Open; end; end. sieht er genauso aus wie oben funktionbiert aber... wenn ich es per Connection aus der Unit versuche kommt ne "Zugriffsverletzung"... Erkennt einer den Fehler?? Gruß |
Re: ADOConnection auslagern in Unit
Hi.
Die Zeile, in der du den Rückgabewert deiner Funktion ConnectionGeber() setzt - hast du die weiß gefärbt? Grüße vom marabu |
Re: ADOConnection auslagern in Unit
Warum nimmst du kein Datenmodul?
|
Re: ADOConnection auslagern in Unit
@marabu..
oops beim kopieren vergessen, nein steht dabei also als letztes in der Unit2
Delphi-Quellcode:
result:=con;
@mkinzler öhm ka. noch nie was von gehört?! :D |
Re: ADOConnection auslagern in Unit
Ist wirklich besser, wenn du ein Datenmodul (Datei - Neu - Datenmodul) verwendest und deine Connection darauf ziehst. Der Owner deiner Connection ist die Form, wenn du die Komponente zur Entwurfszeit erstellst. Zur Laufzeit übergibst du Application.Owner als Owner - ob das so gut ist?
marabu |
Re: ADOConnection auslagern in Unit
Datenmodul eingestez....
und siehe da.. FUNKTIONIERT.. besten dank!! :dp: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:09 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-2025 by Thomas Breitkreuz