![]() |
Verbindung zum Firebird embedded per .Net Data Provider
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 ![]() Danke für eure hilfreichen Antworten! Mamphil PS: Ja, ich habe schon gesucht und nein, zum Suchbegriff ![]() |
Re: Verbindung zum Firebird embedded per .Net Data Provider
Dir ist nicht zufällig der Link zur Doku aufgefallen? :mrgreen:
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:
Edit: Auf Nachfrage im Chat zu Delphi übersetzt....
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; |
Re: Verbindung zum Firebird embedded per .Net Data Provider
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 :coder2: Also, hier ist der funktionstüchtige Code:
Delphi-Quellcode:
Ein paar Kommentare:
{$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;
Delphi-Quellcode:
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.
ConnStr := System.String.Format('Database={0};User={1};Password={2};Dialect={3};Server={4}'
, 'C:\\miep.gdb' , 'SYSDBA' , 'masterkey' , '3' , 'localhost'); 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 |
Re: Verbindung zum Firebird embedded per .Net Data Provider
Zitat:
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:
|
Re: Verbindung zum Firebird embedded per .Net Data Provider
Hi!
Super, vielen Dank, wieder was gelernt. Falls jemand noch mal nach embedded Firebird sucht, hier mein übersichtlicherer Connection-String:
Delphi-Quellcode:
Ggü. der obigen Lösung kam der Parameter ServerType hinzu, der für den Betrieb als embedded Server notwendig ist.
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' ]); Mamphil EDIT: Delphi-Code kommentiert |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:21 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