Einzelnen Beitrag anzeigen

domsch

Registriert seit: 15. Apr 2006
Ort: Paderborn
21 Beiträge
 
Delphi 2006 Enterprise
 
#1

ADOConnection auslagern in Unit

  Alt 9. Jun 2006, 09:22
Datenbank: MSSQL • Version: 2005 • Zugriff über: ADO
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:

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.
und die Unit2:
Delphi-Quellcode:
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.
Die DB läuft auf dem selben rechner. Wenn ich die Connection so in die Form ziehe und den Connection String zusammen baue,
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ß
Dominik
Absoluter Delphi Newbie
  Mit Zitat antworten Zitat