AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Verbindung zum Firebird embedded per .Net Data Provider
Thema durchsuchen
Ansicht
Themen-Optionen

Verbindung zum Firebird embedded per .Net Data Provider

Ein Thema von Mamphil · begonnen am 5. Sep 2004 · letzter Beitrag vom 7. Sep 2004
Antwort Antwort
Benutzerbild von Mamphil
Mamphil

Registriert seit: 17. Jul 2004
Ort: Garching b. München
149 Beiträge
 
Delphi 7 Professional
 
#1

Verbindung zum Firebird embedded per .Net Data Provider

  Alt 5. Sep 2004, 16:12
Hi!

Ich hoffe, ich bin auf dem richtigen Dampfer, habe nämlich überhaupt nichts zum Folgenden auf delphipraxis.net gefunden...

Ich habe den Firebird .Net Data Provider hier heruntergeladen, installiert und als Delphi-Komponente registriert. Es sieht für mich so aus, als müsste ich die Funktion FbConnection(connectionString) zum Verbindungsaufbau zu Datenbank verwenden. Leider habe ich keinen blassen Schimmer, wie ich das anstellen soll, da ich bisher nur Beispiele für andere Sprachen als Delphi gefunden habe. Der Zusammenbau der Variable connectionString ist kein Problem, nur wie erstelle ich nun die Verbindung?

Danke für eure hilfreichen Antworten!

Mamphil

PS: Ja, ich habe schon gesucht und nein, zum Suchbegriff Hier im Forum suchenfbConnection gibt es hier nichts.
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#2

Re: Verbindung zum Firebird embedded per .Net Data Provider

  Alt 5. Sep 2004, 17:45
Dir ist nicht zufällig der Link zur Doku aufgefallen?

Ich hoffe mal, der Fb-Provider hält sich an die Standards (Wenn nicht dürfte er sich nicht Data-Provider nennen ).
Dann könnte das Ganze so aussehen:
Delphi-Quellcode:
var
  Connection :FbConnection;
  SelectSomeJunk :FbCommand;
  daSomeJunk :FbDataAdapter;
  dsJunk :DataSet;

  ConnStr :string;
begin
  {$region 'create DB Objects'}

  ConnStr := System.String.Format('Database={0};User={1};Password={2};Dialect={3};Server={4}'
                                 , "C:\\miep.gdb"
                                 , "SYSDBA"
                                 , "masterkey"
                                 , 3
                                 , "www.nix.net");

  Connection := FbConnection.Create(ConnStr);

  SelectSomeJunk := FbCommand.Create('SELECT X FROM Y WHERE Z is not null'
                                    , Connection);

  daSomeJunk := FbDataAdapter.Create(SelectSomeJunk);

  dsJunk := DataSet.Create();

  {$endregion}

  Connection.Open();
  daSomeJunk.Fill(dsJunk);
  Connection.Close();

  SomeDataGrid.DataSource = dsJunk;
end;
Edit: Auf Nachfrage im Chat zu Delphi übersetzt....
  Mit Zitat antworten Zitat
Benutzerbild von Mamphil
Mamphil

Registriert seit: 17. Jul 2004
Ort: Garching b. München
149 Beiträge
 
Delphi 7 Professional
 
#3

Re: Verbindung zum Firebird embedded per .Net Data Provider

  Alt 6. Sep 2004, 16:01
Hi!

Vielen Dank, Robert_G, für deine ausführliche und gut verständliche Antwort. Der Code hatte zwar ein paar Probleme gemacht, die sind aber gelöst

Also, hier ist der funktionstüchtige Code:
Delphi-Quellcode:
{$region 'create DB Objects'}

  ConnStr := 'Database=' + Application.StartUpPath + '\test.fdb;User=SYSDBA;Password=masterkey;Dialect=3;Server=localhost;ServerType=1';

  Connection := FbConnection.Create(ConnStr);

  SelectSomeJunk := FbCommand.Create('SELECT * FROM RDB$RELATIONS;'
                                    , Connection);

  daSomeJunk := FbDataAdapter.Create(SelectSomeJunk);

  dsJunk := DataSet.Create();

  {$endregion}

  MessageBox.Show(ConnStr);

  Connection.Open();
  try
    daSomeJunk.Fill(dsJunk);
  except
    on ex: Exception do MessageBox.Show(ex.Message);
  end;
  Connection.Close();

// SomeDataGrid.DataSource = dsJunk;
Ein paar Kommentare:

Delphi-Quellcode:
ConnStr := System.String.Format('Database={0};User={1};Password={2};Dialect={3};Server={4}'
                                 , 'C:\\miep.gdb'
                                 , 'SYSDBA'
                                 , 'masterkey'
                                 , '3'
                                 , 'localhost');
habe ich auskommentiert, weil es irgendwie nicht ging. Die Zeile mit der '3' lieferte beim Kompilieren den Fehler "zu viele Parameter". Vielleicht weiß diesbezüglich jemand Rat? Außerdem habe ich dort statt der doppelten Anführungszeichen (") einfache (') verwendet, erstere hat der Compiler nicht geschluckt.

Für den embedded Server funktioniert dieser Connection-String aber trotzdem nicht. Es fehlte der Parameter ServerType=1, der für embedded Server benötigt wird.

Ansonten habe ich keine wesentlichen Änderungen vorgenommen.

Noch einmal: Vielen Dank!

Mamphil
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#4

Re: Verbindung zum Firebird embedded per .Net Data Provider

  Alt 6. Sep 2004, 22:48
Zitat von Mamphil:
Die Zeile mit der '3' lieferte beim Kompilieren den Fehler "zu viele Parameter". Vielleicht weiß diesbezüglich jemand Rat?
Hihi, das ist witzig.

String.Format ist hinten mit einem Parameter als "params" deklariert -> _Eigentlich_ sollte man ihm soviele Parameter geben können, wie man lustig ist.
Aaaabeeer da es D8 nicht auf die Reihe bekommt das zu erkennen musst du ihm wohl oder übel einen array of object übergeben.
Code:
ConnStr := System.String.Format([color=#aa2200]'Database={0};User={1};Password={2};Dialect={3};Server={4}'[/color]
                                 ,[color=#ff0000][b][size=18][[/size][/b][/color][color=#aa2200] 'C:\miep.gdb'[/color]
                                   , [color=#aa2200]'SYSDBA'[/color]
                                   , [color=#aa2200]'masterkey'[/color]
                                   , [color=#aa2200]'3'[/color]
                                   , [color=#aa2200]'localhost'[/color][color=#ff0000][b][size=18]][/size][/b][/color]);

Zitat von Mamphil:
Außerdem habe ich dort statt der doppelten Anführungszeichen (") einfache (') verwendet, erstere hat der Compiler nicht geschluckt.
ups, die waren noch vom C#-Code übrig
  Mit Zitat antworten Zitat
Benutzerbild von Mamphil
Mamphil

Registriert seit: 17. Jul 2004
Ort: Garching b. München
149 Beiträge
 
Delphi 7 Professional
 
#5

Re: Verbindung zum Firebird embedded per .Net Data Provider

  Alt 7. Sep 2004, 12:42
Hi!

Super, vielen Dank, wieder was gelernt. Falls jemand noch mal nach embedded Firebird sucht, hier mein übersichtlicherer Connection-String:
Delphi-Quellcode:
  ConnStr := System.String.Format('Database={0};User={1};Password={2};Dialect={3};Server={4};ServerType={5}'
                                 ,[ Application.StartUpPath + '\test.fdb// Database, absoluter Pfad zum Datenbank-File
                                   , 'SYSDBA'                             // User, Standard-Benutzer für embedded Firebird
                                   , 'masterkey'                          // Password, Standard-Kennwort für embedded Firebird
                                   , '3'                                  // Dialect, der zu verwendene SQL-Dialekt
                                   , 'localhost'                          // Server
                                   , '1'                                  // ServerType, Standard '0', für embedded '1'
                                  ]);
Ggü. der obigen Lösung kam der Parameter ServerType hinzu, der für den Betrieb als embedded Server notwendig ist.

Mamphil

EDIT: Delphi-Code kommentiert
  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 18:53 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