Discussion:
Funktionsumfang Firebird Client-Abhängig?
(zu alt für eine Antwort)
Hubert Seidel
2011-03-13 15:10:28 UTC
Permalink
Hallo NG,

ich möchte Delphi 5 mit Firebird 2.1 verwenden.
Auf dem Client ist ausschließlich Delphi original mit
seinen Interbase-Komponenten installiert, auf dem
Server ausschließlich Firebird 2.1.

Ich habe mir ein Test-Formular mit folgenden Komponenten gebaut:

IBDatabase1
- Extern
- Server/TCP/Datanbank
- Benutzername gesetzt
- Password gesetzt
- Zeichensatz WIN1252
- Keine Anmeldeaufforderung
- DefaultTransaktion IBTransaktion1
- SQLDialoct 3
IBTransaktion1
- Keine Änderungen vorgenommen
IBQuery1
- Database IBDatabase1
- Transaktion IBTransaction1
- SQL (siehe unten)
DataSource1
- DataSet IBQuery1
DBGrid1
- DataSource DataSource1

Nun zu meinem Problem bzw. Frage:

Auf dem Client, sowohl mit den bei Delphi mitgeliefertem
"InterBase Windows ISQL", als auch mit dem o.g. Konstrukt
bekomme ich zwar ein "select 1 from rdb$database" hin,
aber ein "select current_time from rdb$database" (u.v.m) nicht;

Verwendet ich auf dem Server das "Firebird ISQL", geht es.
Ich gehe davon aus das irgendwelche Properties nicht
richtig gesetzt sind und hoffe mit wenig Aufwand und möglichst
es ohne zusätzliche Installationen lauffähig zu machen.

Wäre schön wenn mir jemand sagen könnte was ich falsch mache
bzw. ich hoffe das wenig Aufwand notwendig ist.
(Idealerweise ohne zusätzliche Installationen)

Ich würde mich freuen etwas Licht am Ende des Tunnels zu sehen,
in der Hoffnung es ist kein entgegen kommender Zug!

mfg.
Herby
Hubert Seidel
2011-03-13 19:57:39 UTC
Permalink
Post by Hubert Seidel
ich möchte Delphi 5 mit Firebird 2.1 verwenden.
Auf dem Client ist ausschließlich Delphi original mit
seinen Interbase-Komponenten installiert, auf dem
Ich habe auf dem Client jetzt ein Firebird-ODBC-Treiber installiert.

Das Ergebnis ist aber das gleiche:

select current_time from rdb$database;

führt zu:

[ODBC Firebird Driver][Firebird]Dynamic SQL Error
SQL error code = -206
Column unknown
CURRENT_TIME
unknown ISC error 33554524

Zu 33554524 Firebird habe ich nichte gefunden.
Firebird und -206 ergibt 16,7 Mio. Treffer ;-)
Post by Hubert Seidel
Server ausschließlich Firebird 2.1.
Ich arbeite dran... ist bestimmt was ganz blödes... ;-)

mfg.
Herby
Joe Galinke
2011-03-13 22:52:05 UTC
Permalink
Hallo Hubert,
Post by Hubert Seidel
[ODBC Firebird Driver][Firebird]Dynamic SQL Error
SQL error code = -206
Column unknown
CURRENT_TIME
unknown ISC error 33554524
Zu 33554524 Firebird habe ich nichte gefunden.
Firebird und -206 ergibt 16,7 Mio. Treffer ;-)
Post by Hubert Seidel
Server ausschließlich Firebird 2.1.
Ich arbeite dran... ist bestimmt was ganz blödes... ;-)
Eine Aufstellung der Fehlercodes habe ich bei IBExpert, wo sonst, wenn
nicht bei Firebird direkt, gefunden.

http://ibexpert.net/ibe/index.php?n=Doc.Firebird21ErrorCodes

-206 steht u.a. für "Column unknown".


Nimm mal die fbclient.dll Deiner Firebirdinstallation und kopiere sie als
gds32.dll in Dein System32-Verzeichnis. Die von Delphi für Interbase
dorthin installierte Orginalversion solltest Du vorher aber umbenennen.

Wie sich der Zugriff auf Interbase dann gestaltet weiß ich aber nicht, da
ich von den beiden Möglichkeiten bisher immer nur Firebird verwendet habe.

Gruß, Joe
--
Hubert Seidel
2011-03-14 21:24:15 UTC
Permalink
Hallo Joe,
Post by Joe Galinke
Post by Hubert Seidel
CURRENT_TIME
unknown ISC error 33554524
Eine Aufstellung der Fehlercodes habe ich bei IBExpert, wo sonst, wenn
nicht bei Firebird direkt, gefunden.
http://ibexpert.net/ibe/index.php?n=Doc.Firebird21ErrorCodes
-206 steht u.a. für "Column unknown".
Das habe ich mir schon fast gedacht :)
Post by Joe Galinke
Nimm mal die fbclient.dll Deiner Firebirdinstallation und kopiere sie als
gds32.dll in Dein System32-Verzeichnis. Die von Delphi für Interbase
dorthin installierte Orginalversion solltest Du vorher aber
umbenennen.

!!!SUPER!!!

Auf dem "Server" ist die gds32.dll und fbclient.dll identisch.
Ich habe die gds32.dll auf den Client kopiert und die Delphi-Applikation
macht jetzt tatsächlich genau das was sie soll. Ich freue mich :-))

Das auch bei der Firebird-ODBC-Verbindung.
Post by Joe Galinke
Wie sich der Zugriff auf Interbase dann gestaltet weiß ich aber nicht, da
ich von den beiden Möglichkeiten bisher immer nur Firebird verwendet habe.
Tja, und ich glaube hier ist das I-Tüpfelchen irgendwo vergraben.

In meinem SQL Explorer bekomme ich jetzt bei
select current_time from rdb$database;
nun die Fehlermeldung:
Client SQL dialect 1 does not support reference to TIME datatype

Offensichtlich läuft Interbase auf dialect 1.

Wenn ich den zu dialect 3 überreden kann,
kann ich vollständig auf Firebird 2.1 zugreifen.

So ist auch schon coll, wenn jetzt jedoch noch jemand weis
wie ich den SQL-Explorer zu dialect 3 überreden kann,... :-))


Vielen Dank und
mfg.
Herby
Joe Galinke
2011-03-14 21:21:37 UTC
Permalink
Hallo Hubert,
Post by Hubert Seidel
Tja, und ich glaube hier ist das I-Tüpfelchen irgendwo vergraben.
In meinem SQL Explorer bekomme ich jetzt bei
select current_time from rdb$database;
Client SQL dialect 1 does not support reference to TIME datatype
Offensichtlich läuft Interbase auf dialect 1.
SQL Explorer? Der mit Delphi gelieferte? Ich glaube nicht, dass Du den
verwenden willst. :-)

Für Firebird kann ich Dir nur IBExpert ans Herz legen, den es in der
Personal Edition sogar kostenlos gibt.

http://ibexpert.net/ibe/index.php?n=Main.PersonalEdition

Ich bin darüber hinaus auch nicht davon überzeugt, dass die
Interbase-Komponenten auf Dauer für den Firebird-Zugriff zu empfehlen sind.

Interbase und Firebird entwickeln sich nicht gleich und es gibt meines
Wissens kein Bestreben die Interbase-Komponenten für Firebird fit zu
halten. Nun sind Deine Komponenten aus D5 zwar schon alt und haben sich
nicht von Firebird weg entwickelt, aber Firebird hat sich geändert. Das mag
Dich heute noch nicht tangieren, aber vielleicht mit einer der kommenden
Firebird-Versionen oder wenn Du dann mal auf XE oder Nachfolger umsteigst.

http://www.delphitutorials.de/firebird-komponenten.html

Ich verwende Zeos und, im Zusammenhang mit kbmMW, UIB.


Gruß, Joe
--
Hubert Seidel
2011-03-14 22:41:28 UTC
Permalink
Hallo Joe,
Post by Joe Galinke
Post by Hubert Seidel
Offensichtlich läuft Interbase auf dialect 1.
SQL Explorer? Der mit Delphi gelieferte? Ich glaube nicht, dass Du den
verwenden willst. :-)
Doch, ich möchte den gerne verwenden :-)
Post by Joe Galinke
Für Firebird kann ich Dir nur IBExpert ans Herz legen, den es in der
Personal Edition sogar kostenlos gibt.
http://ibexpert.net/ibe/index.php?n=Main.PersonalEdition
Ja, nur muss ich mich dazu registrieren :-(
Wahrscheinlich bin ich einer von millionen, auf den man verzichten kann.
Ok, dann eben ohne mich.
Post by Joe Galinke
Ich bin darüber hinaus auch nicht davon überzeugt, dass die
Interbase-Komponenten auf Dauer für den Firebird-Zugriff zu empfehlen sind.
Ich glaube Dir. Für meine Zwecke (privat) reicht das (hoffentlich)
völlig.
Post by Joe Galinke
Interbase und Firebird entwickeln sich nicht gleich und es gibt meines
Wissens kein Bestreben die Interbase-Komponenten für Firebird fit zu
halten. Nun sind Deine Komponenten aus D5 zwar schon alt und haben sich
Wenn ich so ein paar Euronen sparen kann, freue ich mich :-)
Post by Joe Galinke
nicht von Firebird weg entwickelt, aber Firebird hat sich geändert. Das mag
Dich heute noch nicht tangieren, aber vielleicht mit einer der
kommenden
Post by Joe Galinke
Firebird-Versionen oder wenn Du dann mal auf XE oder Nachfolger umsteigst.
Beruflich ist bei mir momentan Oracle "gesetzt",
privat versuche ich mit wenig Aufwand/Kosten Firebird.
Post by Joe Galinke
http://www.delphitutorials.de/firebird-komponenten.html
Ich verwende Zeos und, im Zusammenhang mit kbmMW, UIB.
Danke für die Tipps, werde ich mir im Hinterkopf behalten.

In der Zwischenzeit versuche ich die neuen Erkenntnisse zu Verarbeiten.

Nochmals: Vielen Dank! und
Herby

Loading...