![]() |
Datenbank: Firebird • Version: 2.5 • Zugriff über: Firebird .NET Provider 2.6
Firebird Provider kann nicht verbinden?
Hi,
ich habe eine Firebird-Datenbank (aktuelle Version), auf die ich einwandfrei mit IBExpert verbinden kann. Nun will ich auf diese Datenbank mit dem Firebird ADO.NET Provider (auch aktuelle Version) verbinden. Das hier ist der Code:
Code:
Wie gesagt, die Einstellungen funktionieren mit IBExpert einwandfrei. Der Firebird provider jedoch schmeisst bei conn.Open() eine IndexOutOfRangeException mit folgendem Stacktrace:
try
{ FbConnection conn = new FbConnection(@"Server=127.0.0.1;User=SYSDBA;Password=masterkey;Database=C:\Users\smartBugs\Documents\PCTRADE.gdb"); conn.Open(); } catch (Exception ex) { this.Text = ex.Message; }
Code:
Ich finde keine Lösung für das Problem. Es scheint
StackTrace " at System.Collections.ArrayList.get_Item(Int32 index)
at FirebirdSql.Data.Client.Managed.Version10.GdsDatabase.GetServerVersion() at FirebirdSql.Data.Client.Managed.Version10.GdsDatabase.Attach(DatabaseParameterBuffer dpb, String dataSource, Int32 port, String database) at FirebirdSql.Data.FirebirdClient.FbConnectionInternal.Connect() at FirebirdSql.Data.FirebirdClient.FbConnectionPool.Create() at FirebirdSql.Data.FirebirdClient.FbConnectionPool.CheckOut() at FirebirdSql.Data.FirebirdClient.FbConnection.Open() at DBConnectionTest.Form1.Form1_Load(Object sender, EventArgs e) in C:\\Users\\smartBugs\\Documents\\Visual Studio 2010\\Projects\\TheEntityLibrary\\DBConnectionTest\\Form1.cs:line 25" string ![]() Jemand eine Idee? |
AW: Firebird Provider kann nicht verbinden?
Interessant finde ich den assoziierten Eintrag im
![]() Wenn das wirklich das einzige ist, was gemacht wurde, dann wurde nur die Buffergröße verdoppelt. |
AW: Firebird Provider kann nicht verbinden?
Naja, es hilft ja auch nicht :|
|
AW: Firebird Provider kann nicht verbinden?
In Delphi.NET funktioniert es bei mir auf diese Art ganz wunderbar:
Delphi-Quellcode:
fbCon ist natürlich eine FBConnection.
fbCon.ConnectionString := GetFBConnectionString;
fbCon.Open; Und der interessante Part:
Delphi-Quellcode:
function GetFBConnectionString : String;
// Erstellt den Connectionstring für die Verbindung zur Datenbank var ini : TiniFile; begin ini := TIniFile.Create(GetIniFilename); try Result := 'User=' + ini.ReadString(rsSectionDatenbank, rsSDBenutzer, rsSDBenutzerDefault) + ';' + 'Password=' + ini.readString(rsSectionDatenbank, rsSDKennwort, rsSDKennwortDefault) + ';' + 'Database=' + ini.ReadString(rsSectionDatenbank, rsSDDatenbank, rsSDDatenbankDefault) + ';' + 'DataSource=' + ini.readString(rsSectionDatenbank, rsSDServer, rsSDServerDefault) + ';' + 'Port=3050;' + 'Dialect=3;' + 'Charset=UTF8;' + 'Role=;' + 'Connection lifetime=0;' + 'Connection timeout=15;' + 'Pooling=True;' + 'Packet Size=8192;' + 'Server Type=0'; finally ini.Free; end; end; |
AW: Firebird Provider kann nicht verbinden?
Hi,
die Syntax des Verbindungs - Strings war für mich zu anstrengend. Deshalb nehme ich lieber den StringBuilder:
Code:
Der Debugger zeigt mir dann den folgenden String:
FbConnectionStringBuilder fbStringBuilder = new FbConnectionStringBuilder();
fbStringBuilder.DataSource = "127.0.0.1"; fbStringBuilder.Database = "AIS"; fbStringBuilder.ClientLibrary = @"C:\Program Files (x86)\Firebird\Firebird_2_1\bin\fbclient.dll"; fbStringBuilder.UserID = "SYSDBA"; fbStringBuilder.Password = "masterkey"; fbStringBuilder.Port = 3051; fbStringBuilder.Dialect = 3; fbStringBuilder.Charset = "ISO8859_1"; string CnnStr = fbStringBuilder.ToString(); FbConnection con = new FbConnection(CnnStr); "data source=127.0.0.1;initial catalog=AIS;client library=\"C:\\Program Files (x86)\\Firebird\\Firebird_2_1\\bin\\fbclient.dll\" ;user id=SYSDBA;password=masterkey;port number=3051;dialect=3;character set=ISO8859_1" Vielleicht ist es ja nur so, dass er Sever, User und Database so nicht schluckt. Frank |
AW: Firebird Provider kann nicht verbinden?
Ich denke, der Fehler wird da liegen, dass er "Server=..." geschrieben hat, statt "DataSource=..."
|
AW: Firebird Provider kann nicht verbinden?
Auch mit den Änderungen und den zusätzlichen Angaben im Connectionstring (Server vs. Data source, Port, ClientLib etc. angeben oder auch nicht, in ziemlich vielen Kombinationen): Keine Änderung. Nach dem Attachen mit dem Server beim GetServerVersion bekomme ich die IndexOutOfRangeException.
|
AW: Firebird Provider kann nicht verbinden?
Das legt den Verdacht nahe, dass der Fehler an einer anderen Stelle zu suchen ist.
Passt die ClientLib mit der tatsächlichen Serverversion zusammen? |
AW: Firebird Provider kann nicht verbinden?
Hallo Sebastian,
unter der Version 2.5.2 hat auf jedenfall der Sourcecode aus diesem ![]() Gruß Rolf |
AW: Firebird Provider kann nicht verbinden?
Mannomann...
Reboot tut gut. Zweimal. Dann gings. :roll: Fragt mich bitte nicht, was die tatsächliche Ursache war, ich hab nämlich keine Ahnung. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:29 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