AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Firebird Characterset ISO8859_1 is not defined / installed

Firebird Characterset ISO8859_1 is not defined / installed

Ein Thema von Perlsau · begonnen am 12. Jun 2012 · letzter Beitrag vom 13. Jun 2012
Antwort Antwort
Seite 1 von 2  1 2   
Perlsau
(Gast)

n/a Beiträge
 
#1

Firebird Characterset ISO8859_1 is not defined / installed

  Alt 12. Jun 2012, 12:35
Datenbank: Firebird • Version: 2.51 • Zugriff über: FibPlus 6.9.6 Release for 2009
Hallo Entwicklergemeinde,

seit Tagen knoble ich an einem Problem herum, für das ich keine Lösung finde. Ich habe eine Datenbank-Anwendung mit Firebird embedded gebastelt, soll als Stickware funktionieren. Doch die beiden Beta-Tester, die sich erbarmt haben, meine Kreation zu testen, bekommen sie nicht zum Laufen, obwohl sie bei mir als Embedded wie auch mit installiertem Server einwandfrei läuft.
Der erste Tester verwendet Windows 7 Ultimate und erhält die Meldung:
Code:
Fehler beim Verbinden mit der Datenbank (das ist mein ShowMessage-Text) ... Connection Error ... Characterset ISO8859_1 is not defined
Der zweite Tester arbeitet mit Windows Server 2008 R2 und bei ihm kommt:
Code:
Fehler beim Verbinden mit den Datasets (das ist mein ShowMessage-Text) ... DatMod.Dset_Kunde.SelectQuery: undefined name. Characterset ISO8859_1 is not installed
In der SelectQuery steht z.B.
Code:
SELECT * FROM KUNDE
Meine Verbindungsprocedure sieht so aus:
Delphi-Quellcode:
FUNCTION TDatMod.VerbindenDatenbank(Modus : Byte): Boolean;
BEGIN
     Result := FALSE;
     IF Modus > 2 THEN EXIT;

     FibBase.SQLDialect := 3;
     FibBase.ConnectParams.Password := 'kl45ug13';
     FibBase.ConnectParams.UserName := 'PNS7RD19';
     FibBase.ConnectParams.CharSet := '';

     IF NOT FileExists(Pfad + Datenbank) THEN
        ShowMessage('Datei "' + Pfad + Datenbank + '" nicht gefunden ...');
     IF NOT FileExists(Pfad + 'firebird.msg') THEN
        ShowMessage('Datei "' + Pfad + 'firebird.msg" nicht gefunden ...');
     IF NOT FileExists(Pfad + 'fbclient.dll') THEN
        ShowMessage('Datei "' + Pfad + 'fbclient.dll" nicht gefunden ...');

     CASE Modus OF

     0 : BEGIN // Embedded
              FibBase.AliasName := '';
              FibBase.DBName := Pfad + Datenbank;
              FibBase.LibraryName := Pfad + 'fbclient.dll';

         END;
     1 : BEGIN // Lokaler Datenbankserver
              FibBase.AliasName := 'PCODE';
              FibBase.DBName := 'E:\Datenbanken\' + Datenbank;
              FibBase.LibraryName := 'D:\Programme\Database\Firebird_2_5\bin\fbclient.dll';
         END;
     2 : BEGIN // Remote Datenbankserver
              EXIT;
         END;
     END;

     TRY
        FibBase.Connected := TRUE;
        Result := TRUE;

     EXCEPT
        ON e:exception DO
        BEGIN
             ShowMessage('Fehler beim Verbinden mit der Datenbank: ' + e.Message);
             Result := FALSE;
             EXIT;
        END;
     END;
END;
und
Delphi-Quellcode:
{*****************************************************************************************************************************************
*** VERBINDEN: DATASETS                                                                                                              ***
*****************************************************************************************************************************************}

FUNCTION TDatMod.VerbindenDatasets : Boolean;
BEGIN
     Result := FALSE;
     IF NOT FibBase.Connected THEN EXIT;

     TRY
        Trans_Default.Active := TRUE;
        Trans_Update.Active := TRUE;

        Dset_Benutzer.Active := TRUE;
        Dset_Kunde.Active := TRUE;
        ...

        Result := TRUE;
     Except
        ON e:exception DO
        BEGIN
             ShowMessage('Fehler beim Verbinden mit den Datasets: ' + e.Message);
             Result := FALSE;
             EXIT;
        END;
     END;

     VerbindenDataSources;
END;
Aufgerufen wird das in FormActivate der Hauptform:
Delphi-Quellcode:
{*****************************************************************************************************************************************
*** ON ACTIVATE                                                                                                                      ***
*** 0 Embedded = Datenbank im Programm-Ordner                                                                                        ***
*** 1 Lokal    = Datenbank über Firebird-Server auf demselben Rechner                                                                ***
*** 2 Remote  = Datenbank über Firebird-Server auf anderem Rechner im Netzwerk oder im Internet                                      ***
*****************************************************************************************************************************************}

procedure TFormMain.FormActivate(Sender: TObject);
begin
     DatMod.Pfad := ExtractFilePath(ParamStr(0));

     Version := 0;

     // Mit Datenbank verbinden
     IF NOT DatMod.VerbindenDatenbank(Version) THEN
     BEGIN
          CLOSE;
          EXIT;
     END;

     // Mit Datasets und Transactions verbinden
     IF NOT DatMod.VerbindenDatasets THEN
     BEGIN
          CLOSE;
          EXIT;
     END;
Die Datenbank hat als Default-Zeichensatz ISO8859_1, die Zeichensätze der VARCHAR-Spalten stehen ebenfalls auf ISO8859_1, Collation ist DE-DE, bei den Text-Blobfeldern ebenfalls ISO8859_1.

Irgend etwas läuft da gewaltig schief ... Ist doch nicht die erste Firebird-Embedded, die ich verwende und weitergebe. Was ist da nur los?

P.S.: Das ganze Projekt hat knapp 175.000 Zeilen und ist daher zu groß, um es hier komplett zu posten. Wäre auch nicht sinnvoll ...
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Firebird Characterset ISO8859_1 is not defined / installed

  Alt 12. Jun 2012, 12:37
Ich vermute eher, dass es an einem unvollständigen Client liegt. Was wurde alles mitgegeben nur die fbcleint.dll oder auch die anderen Dlls?
Markus Kinzler
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#3

AW: Firebird Characterset ISO8859_1 is not defined / installed

  Alt 12. Jun 2012, 12:47
Ich vermute eher, dass es an einem unvollständigen Client liegt. Was wurde alles mitgegeben nur die fbcleint.dll oder auch die anderen Dlls?
Code:
E:\Release\PC-Heil Projektmanager\Archiv
E:\Release\PC-Heil Projektmanager\intl
E:\Release\PC-Heil Projektmanager\udf
E:\Release\PC-Heil Projektmanager\aliases.conf
E:\Release\PC-Heil Projektmanager\fbclient.dll
E:\Release\PC-Heil Projektmanager\firebird.conf
E:\Release\PC-Heil Projektmanager\firebird.log
E:\Release\PC-Heil Projektmanager\firebird.msg
E:\Release\PC-Heil Projektmanager\ib_util.dll
E:\Release\PC-Heil Projektmanager\icudt30.dll
E:\Release\PC-Heil Projektmanager\icuin30.dll
E:\Release\PC-Heil Projektmanager\icuuc30.dll
E:\Release\PC-Heil Projektmanager\libeay32.dll
E:\Release\PC-Heil Projektmanager\Microsoft.VC80.CRT.manifest
E:\Release\PC-Heil Projektmanager\midas.dll
E:\Release\PC-Heil Projektmanager\msvcm80.dll
E:\Release\PC-Heil Projektmanager\msvcp80.dll
E:\Release\PC-Heil Projektmanager\msvcr80.dll
E:\Release\PC-Heil Projektmanager\PchProjectManager_1.exe
E:\Release\PC-Heil Projektmanager\PROCODE.FDB
E:\Release\PC-Heil Projektmanager\PROCODE.pdf
E:\Release\PC-Heil Projektmanager\PROCODE.rtf
E:\Release\PC-Heil Projektmanager\ssleay32.dll
E:\Release\PC-Heil Projektmanager\intl\fbintl.conf
E:\Release\PC-Heil Projektmanager\intl\fbintl.dll
E:\Release\PC-Heil Projektmanager\udf\fbudf.dll
E:\Release\PC-Heil Projektmanager\udf\fbudf.sql
E:\Release\PC-Heil Projektmanager\udf\fbudf.txt
E:\Release\PC-Heil Projektmanager\udf\ib_udf.dll
E:\Release\PC-Heil Projektmanager\udf\ib_udf.sql
E:\Release\PC-Heil Projektmanager\udf\ib_udf2.sql
Die Dateien sind aus dem letzten Firebird-Embedded-Release:
32-bit Embedded, October 04, 2011, Firebird-2.5.1.26351-0_Win32_embed.zip, Embedded, separate download, zip kit. Custom installation required

Die Datei fbclient.dll ist die umbenannte Datei fbembed.dll.

Geändert von Perlsau (12. Jun 2012 um 22:55 Uhr) Grund: Reihenfolge der Directory-Einträge sortiert
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#4

AW: Firebird Characterset ISO8859_1 is not defined / installed

  Alt 12. Jun 2012, 14:38
Die Datei fbclient.dll ist die umbenannte Datei fbembed.dll.
Dann kopiere mal noch die fbclient.dll nach gds32.dll.
Gruß
Hansa
  Mit Zitat antworten Zitat
pmoegenb

Registriert seit: 24. Aug 2006
Ort: Aidlingen
155 Beiträge
 
Delphi XE6 Professional
 
#5

AW: Firebird Characterset ISO8859_1 is not defined / installed

  Alt 12. Jun 2012, 16:28
Was passiert, wenn Du in E:\Release\PC-Heil Projektmanager\firebird.conf den Parameter RootDirectory = aktivierst und als Pfad E:\Release\PC-Heil Projektmanager einträgst. Ferner sollte für einen konkurrierenden Zugriff der Parameter RemoteFileOpenAbility = auf 1 stehen.
Peter Mögenburg
Gruß

Peter
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#6

AW: Firebird Characterset ISO8859_1 is not defined / installed

  Alt 12. Jun 2012, 22:44
Was passiert, wenn Du in E:\Release\PC-Heil Projektmanager\firebird.conf den Parameter RootDirectory = aktivierst und als Pfad E:\Release\PC-Heil Projektmanager einträgst. Ferner sollte für einen konkurrierenden Zugriff der Parameter RemoteFileOpenAbility = auf 1 stehen.
Den Eintrag muß man nur aktivieren, wenn man die Firebird-Dateien in einem anderen Ordner ablegt, wie in der README_embedded.txt zu lesen ist:

If you want to place the Firebird files (excluding the
renamed fbembed.dll) in another directory, you need to
modify your firebird.conf and set RootDirectory to the
Firebird directory tree. Example:

c:\my_app\app.exe
c:\my_app\gds32.dll
c:\my_app\ib_util.dll
c:\my_app\icudt30.dll
c:\my_app\icuin30.dll
c:\my_app\icuuc30.dll
c:\my_app\firebird.conf
d:\fb\firebird.msg
d:\fb\intl\fbintl.dll
c:\fb\intl\fbintl.conf
d:\fb\udf\fbudf.dll

Hab's dennoch versucht, mein Tester bekommt jedoch denselben Fehler. Ich kann das hier bei mir leider nicht reproduzieren, in meiner Win7 Ultimate VM läuft das Programm.
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#7

AW: Firebird Characterset ISO8859_1 is not defined / installed

  Alt 12. Jun 2012, 22:47
Die Datei fbclient.dll ist die umbenannte Datei fbembed.dll.
Dann kopiere mal noch die fbclient.dll nach gds32.dll.
Was soll die Namensänderung bringen? Ist immer noch dieselbe DLL, ich hatte sie auch schon als fbclientE.dll und als Embedded.dll benutzt, funktioniert bei mir alles ohne Unterschied. Ich muß lediglich Pfad und Dateiname in der Datenbank-Connection angeben, dann ist es völlig egal, wie die DLL heißt, Hauptsache der Inhalt stimmmt.
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.366 Beiträge
 
Delphi 10.3 Rio
 
#8

AW: Firebird Characterset ISO8859_1 is not defined / installed

  Alt 12. Jun 2012, 23:07
Hi,

Ich muß lediglich Pfad und Dateiname in der Datenbank-Connection angeben, dann ist es völlig egal, wie die DLL heißt, Hauptsache der Inhalt stimmmt.
d.h. Du setzt den korrekten Pfad der fb.dll beim Programmstart (ParamStr(0) oder vergleichbares)? Das wäre von mir noch ne Idee gewesen, dass auf den anderen Rechner ggf. eine FB-Serverinstallation da ist von der die client.dll verwendet wird. Da hatte ich schon die tollsten Fehlermeldungen, weil irgend wo noch ne falsche fbClient.dll rum fuhr...

Grüße
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#9

AW: Firebird Characterset ISO8859_1 is not defined / installed

  Alt 12. Jun 2012, 23:21
d.h. Du setzt den korrekten Pfad der fb.dll beim Programmstart (ParamStr(0) oder vergleichbares)? Das wäre von mir noch ne Idee gewesen, dass auf den anderen Rechner ggf. eine FB-Serverinstallation da ist von der die client.dll verwendet wird. Da hatte ich schon die tollsten Fehlermeldungen, weil irgend wo noch ne falsche fbClient.dll rum fuhr...
Der zweite der oben aufgeführten Tester hat definitiv keinen Firebird-Server installiert, beim ersten weiß ich's nicht, aber der schläft bereits, den kann ich jetzt nicht fragen ...

Ich hatte mein Programm hier in einer Win7-VM, in der ein Firebird-Server installiert war, ebenfalls als Embedded-Version ausprobiert. Hat problemlos funktioniert. Nach Erstellen eines VM-Sicherungspunktes und anschließendem Entfernen des Firebird-Servers (nebst allen Firebird-Dlls) hat es immer noch funktioniert. Welches BS verwendest du? Vielleicht läuft's ja bei dir ...

Hab dennoch Dank für deine Mühe, eine Antwort zu finden ...

Ich hab hier z.B. das Code-Orakel-Programm von Warnecke, das hat auch eine Firebird-Embedded. Allerdings ist in seiner DB als DefaultCharset nichts eingetragen, die VARCHAR-Spalten stehen auf NONE, bei mir dagegen jeweils ISO8859_1. Würde mich mal interessieren, ob Code-Orakel bei Win-7-Nutzern problemlos läuft ... Wenn ja, müßte ich "nur" meine Datenbank neu konzipieren und das Problem wäre gelöst.
  Mit Zitat antworten Zitat
pmoegenb

Registriert seit: 24. Aug 2006
Ort: Aidlingen
155 Beiträge
 
Delphi XE6 Professional
 
#10

AW: Firebird Characterset ISO8859_1 is not defined / installed

  Alt 13. Jun 2012, 06:49
Den Eintrag muß man nur aktivieren, wenn man die Firebird-Dateien in einem anderen Ordner ablegt, wie in der README_embedded.txt zu lesen ist:
Dachte ich auch, als ich jedoch die gesamten Programmdateien auf ein gemapptes Laufwerk eines Servers legte war Schluss. Erst nach dem Eintrag der RootDirectory lief das Programm.
Peter Mögenburg
Gruß

Peter
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 09:52 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