verwendetes Datenbanksystem: Firebird 1.5
Hallo Zusammen,
Zunächst einmal Frohe Weihnachten an Alle.
Nach einer Empfehlung eines Forenmitgliedes beschäftige ich mich gerade mit
NHibernate und ActiveRecord. Ich möchte unbedingt Firebird verwenden und
hab das Beispiel von ActiveRecord unter "Getting started" 1:1 verwendet und nur die appconfig.xml
für FB angepasst. Vermutlich ist da was falsche denn ich bekomme eine Fehlermeldung:
{"Could not create the driver from NHibernate.Driver.FirebirdClientDriver."}
<?xml version="1.0" encoding="utf-8" ?>
<activerecord>
<config>
<add
key="hibernate.connection.driver_class"
value="NHibernate.Driver.FirebirdClientDriver" />
<add
key="hibernate.dialect"
value="NHibernate.Dialect.FirebirdDialect" />
<add
key="hibernate.connection.provider"
value="NHibernate.Connection.DriverConnectionProvider" />
<add
key="hibernate.connection.connection_string"
value="data source=notebook;initial catalog=F:\csharp\ActiveRecord\Database\ActiveRecord.FDB;user id=SYSDBA;password=masterkey;dialect=3;pooling=True;port number=3050;character set=ISO8859_1;server type=Default" />
</config>
</activerecord>
Benötigt NHibernate noch ein Trieber für FB oder sonst was?
Gruß Kostas
moin und ein frohes Fest
schau mal hier
http://www.castleproject.org/activerecord/documentation/v1rc1/manual/xmlconfigref.html#Firebird
raik
Hallo raik,
leider funkt es immer noch nicht. Jetzt zwar mit einer anderen Fehlermeldung:
Could not create the schema
bei ActiveRecordStarter.CreateSchema();
Ich habe es auch versucht die DB anzulegen ohne Tabellen, es kommt die gleiche
Fehlermledung.
Hast Do noch eine Ide?
Gruß Kostas
moin,
hast du schon mal in deren Forum geguckt
http://forum.castleproject.org/search.php?mode=results
raik
moin,
hast du schon mal in deren Forum geguckt
raik
Hallo raik,
hatte ich. Gesucht habe ich nach "Could not create the schema"
dazu gibt es 51 treffer. Jedoch keines aus dem ich erkennen kann wo
das Problem ist. Ich bin nicht davon ausgegangen dass das Beispiel nicht funktioniert.
In User.cs war noch ein Fehler den ich durch dessen Forum beheben konnte.
Die Methode CountAll() wurde umbenannt in Count() Das Beispiel wurde nicht
überarbeitet.
Ich werde jetzt alle 51 Beiträge komplett durchlesen. Möglicherweise ist doch
die Lösung beschrieben.
Gruß Kostas
Leider verloren. 😦
Die 51 Beiträge ergaben kein Lösung für mein Problem.
Wie gesagt, versuche ich das Beispiel "ActiveRecord Getting Started"
und meine appconfig.xml sieht so aus:
<?xml version="1.0" encoding="utf-8" ?>
<activerecord>
<config>
<add
key="hibernate.connection.driver_class"
value="NHibernate.Driver.FirebirdDriver" />
<add
key="hibernate.dialect"
value="NHibernate.Dialect.FirebirdDialect" />
<add
key="hibernate.connection.provider"
value="NHibernate.Connection.DriverConnectionProvider" />
<add
key="hibernate.connection.connection_string"
value="Server=localhost;Database=F:\csharp\ActiveRecord\Database\ActiveRecord.FDB;User=SYSDBA;password=masterkey;ServerType=1;Pooling=false" />
<add
key="hibernate.query.substitutions"
value="true 1, false 0" />
</config>
</activerecord>
Beim ausführen von ActiveRecordStarter.CreateSchema();
bekomme ich die Fehlermeldung: "Could not create the schema"
Hat jemand irgend ein Hinweis für mich?
Gruß Kostas
Hallo Zusammen,
ich kann immer noch keine Verbinung zur Firebird herstellen.
Möglicherweise liegt es an mein System. Könnte jemand bitte
diese Konsoleanwendung mal kompilieren.
Ich verwende übrigens:
Firebird-2.0.3.12981
FirebirdClient-2.1.0
NHibernate-1.2.1
CastleProject-1.0-RC3
Dazu ist es noch notwendig die Files in das Bin-Verzeichnis zu kopieren.
Ich habe sie nicht mit angehängt weil das ein Zip mit 1MB ausmacht.
Castle.ActiveRecord.dll
Castle.ActiveRecord.pdb
Castle.Components.Validator.dll
Castle.Components.Validator.pdb
Castle.Core.dll
Castle.Core.pdb
FirebirdSql.Data.FirebirdClient.dll
Iesi.Collections.dll
log4net.dll
NHibernate.dll
//http://panteravb.com/archive/2007/07/17/hello-world-with-firebird-sql-and-activerecord.aspx
using System;
using System.Collections;
using System.Diagnostics;
using Castle.ActiveRecord;
using Castle.ActiveRecord.Framework.Config;
public class Driver{
public static void Main(string[] args){
try{
Driver driver = new Driver();
driver.Run();
}catch(Exception ex){
Console.WriteLine(ex.ToString());
Console.ReadLine();
}
}
public void Run(){
Hashtable properties = new Hashtable();
properties.Add("hibernate.connection.driver_class", "NHibernate.Driver.FirebirdClientDriver");
properties.Add("hibernate.dialect", "NHibernate.Dialect.FirebirdDialect");
properties.Add("hibernate.connection.provider", "NHibernate.Connection.DriverConnectionProvider");
properties.Add("hibernate.connection.connection_string",
"Server=localhost;Database=c:\data\customers.fdb;User=SYSDBA;password=masterkey;ServerType=0;Pooling=false;");
properties.Add("hibernate.query.substitutions", "true 1, false 0");
InPlaceConfigurationSource source = new InPlaceConfigurationSource();
source.Add(typeof(ActiveRecordBase), properties);
ActiveRecordStarter.Initialize(source, typeof(Customer));
ActiveRecordStarter.CreateSchema();
Customer cust1 = new Customer();
cust1.ID = 666;
cust1.FirstName = "Chris";
cust1.LastName = "Carter";
cust1.Create();
Customer cust2 = Customer.Find(666);
Debug.Assert(cust2 != null, "cust2 should not be null");
Debug.Assert(cust2.ID == 666, "cust2 ID should be 666");
//cust2.Delete();
}
}
[ActiveRecord("customer")]
public class Customer
: ActiveRecordBase<Customer>{
private int _id;
[PrimaryKey(
PrimaryKeyType.Assigned,
"customer_id"
)]
public int ID{
get{ return _id; }
set{ _id = value; }
}
private string _firstName;
[Property(
"first_name",
ColumnType="AnsiString(30)",
NotNull=true
)]
public string FirstName{
get{ return _firstName; }
set{ _firstName = value; }
}
private string _lastName;
[Property(
"last_name",
ColumnType="AnsiString(30)",
NotNull=true
)]
public string LastName{
get{ return _lastName; }
set{ _lastName = value; }
}
}
Dankeschön
Gruß Kostas
moin,
mit MSSql 2005 Exprexx geht es. Ich habe nur die Eigenschaften deiner Hashtabelle ausgetauscht.
bei Firebird hatte ich die gleiche Fehlermeldung
Vielleicht solltest du mal in dem Forum von Castle, dein Problem schildern.
Sorry Raik
Danke kiar,
das Hilft mir doch schon ein schönen stück weiter.
Das habe ich natürlich auch versucht, es gibt sogar ein Deutschsprachiges
Forum. Das Problem ist, ich registriere mich dort neu, und sollte eine Aktivierungs-
Email bekommen. Genau diese kommt einfach nicht. Seit drei Tagen warte ich
darauf. Hab natürlich auch eine zweite Registrierung mit einer anderen
Email-Adresse versucht.
Ich werde jetzt einfach abwarten bis ich mich anmelden kann um die Frage zu stellen.
Dankeschön kiar.
Gruß Kostas
Ich hatte das auch mal. Da hat mich nHibernate zum Wahnsinn getrieben. Wenn ich mich richtig erinnere musste ich einen älteren .NET Provider nehmen, da nHibernate mit dem neusten nicht klar kam.
Hallo MagicAndre1981,
interessant, mir ist das schon aufgefallen das der Autor von HalloWorld eine ältere
Version verwendet hat. Ich werde Morgen alles deinstallieren und ältere Versionen
installieren. Aktuell schaue ich mir XPO von Developer Express an. Ich habe gerade das Tutorial 1 von 4 durchgearbeitet und es funkt wie beschrieben.
Es legt eine Access DB ohne Probleme an. Das tut meinen inneren Frieden recht
gut. 🙂 Im letzten Kapitel geht es um die Bindung an andere DBs. Mal sehen was
er mit der aktuellen Firebird Version macht.
Gruß Kostas
Jetzt funkts.
XPO und wie es aussieht auch alle anderen, benötigen den FirebirdClient-2.0.1
XPO gab mir eine saubere Fehlermeldung mit dem Hinweis der benötigten Version.
Nach der Installation konnte XPO die DB erzeugen, die Tabellen und die Objekte
in den Tabellen anlegen. Alles einwandfrei. Sehr schön auch die "Sprechenden" Metadaten wie Generatorname, PK und FK Identifier.
Die zwei Beispiele, eines das HelloWorld und das Originalbeispiel von ActiveRecord
können das Datenbankfile nicht anlegen. Aber sie können die Tabellen anlegen und die Objekte ablegen wenn die Datenbank bereits angelegt wurde.
Aktuell tendiere ich für XPO.
Schöne Grüße
Kostas