AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi ADOConnection auslagern in Unit
Thema durchsuchen
Ansicht
Themen-Optionen

ADOConnection auslagern in Unit

Ein Thema von domsch · begonnen am 9. Jun 2006 · letzter Beitrag vom 9. Jun 2006
Antwort Antwort
domsch

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

ADOConnection auslagern in Unit

  Alt 9. Jun 2006, 10: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
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: ADOConnection auslagern in Unit

  Alt 9. Jun 2006, 10:25
Hi.

Die Zeile, in der du den Rückgabewert deiner Funktion ConnectionGeber() setzt - hast du die weiß gefärbt?

Grüße vom marabu
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: ADOConnection auslagern in Unit

  Alt 9. Jun 2006, 10:26
Warum nimmst du kein Datenmodul?
Markus Kinzler
  Mit Zitat antworten Zitat
domsch

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

Re: ADOConnection auslagern in Unit

  Alt 9. Jun 2006, 10:34
@marabu..

oops beim kopieren vergessen,

nein steht dabei

also als letztes in der Unit2
result:=con;
@mkinzler

öhm ka. noch nie was von gehört?!
Dominik
Absoluter Delphi Newbie
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: ADOConnection auslagern in Unit

  Alt 9. Jun 2006, 10:49
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
  Mit Zitat antworten Zitat
domsch

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

Re: ADOConnection auslagern in Unit

  Alt 9. Jun 2006, 10:55
Datenmodul eingestez....


und siehe da.. FUNKTIONIERT..


besten dank!!

Dominik
Absoluter Delphi Newbie
  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 05:28 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