Einzelnen Beitrag anzeigen

delphino

Registriert seit: 4. Mai 2005
11 Beiträge
 
#1

TDatabase.DatabaseName und der ganze Rest

  Alt 9. Jun 2005, 23:55
Gab ja schon viele Fragen zu Datenbanken. Vllt ist dies hier mal was neues...

Habe mir eine Klasse geschrieben für Datenbankzugriffe, d.h. wenn ein Frame(Form) was aus ner Datenbank braucht, oder inserten möchte, dann instanziiert es einfach eine DBConnection. Nun möchte ich das alles so frei wie möglich halten und somit während der Entwurfszeit keinerlei Angaben darüber machen wie zur Datenbank verbunden werden soll... Hier ein Beispiel wie es gemeint ist. Das ist natürlich nicht die endgültige DB-Zugriffsklasse, aber bringt das Problem auf den Punkt... Hoffe ich zumindest...

Delphi-Quellcode:
unit Unit3;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, DBTables, Grids, DBGrids, StdCtrls;

type
  TForm3 = class(TForm)
    Database1: TDatabase;
    Session1: TSession;
    Query1: TQuery;
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Database1Login(Database: TDatabase; LoginParams: TStrings);
    
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
 Form3: TForm3;

implementation

{$R *.dfm}

{ MyClass }



procedure TForm3.Database1Login(Database: TDatabase; LoginParams: TStrings);
begin
    with Database do
     begin
      LoginParams.Values['USER NAME'] := 'root';
      LoginParams.Values['Password'] := 'root';
     end;
end;

procedure TForm3.Button1Click(Sender: TObject);
begin

  Database1.DatabaseName := 'owv';
  Database1.AliasName := 'myodbc';
  Query1.DatabaseName := Database1.DatabaseName;
  Session1.SessionName := 'S1';
  Query1.SessionName := Session1.SessionName;
  Query1.Open;
end;

end.
Funktioniert nicht !!! Wenn im Entwurfsmodus Databasename und AliasName nicht angegeben werden.

Fehlermeldung ist, dass der Datenbank Alias 'owv' nicht existiert.



Ich versteh einfach nicht wo Delphi den Unterschied macht. Sobald ich zur Entwurfszeit die Angaben DatabaseName und AliasName mache, funktioniert das ganz toll.

Fürs Helfen im Voraus vielen Dank !!

delphino
Divide And Conquer !!
  Mit Zitat antworten Zitat