Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   C# [Firebird] Create Table schlägt fehl wegen UTF8? (https://www.delphipraxis.net/113841-%5Bfirebird%5D-create-table-schlaegt-fehl-wegen-utf8.html)

Jürgen Thomas 15. Mai 2008 16:10

Datenbank: Firebird • Version: 2.0 • Zugriff über: IBExpert Personal 2008.05.03

[Firebird] Create Table schlägt fehl wegen UTF8?
 
Hallo,

ich habe eine neue Datenbank angelegt. Entsprechend der Firebird-Empfehlung will ich sie nicht (mehr) mit UNICODE_FSS, sondern mit UTF8 erstellen. "Create Database" und "Create Domain" klappt, aber "Create Table" scheitert.
SQL-Code:
CREATE TABLE A_ENTRY (
    ID               D_ID NOT NULL,
    PART             D_I255,
    CHANGEDAT        D_DATETIME,
    CHANGEDBY        DVUSER,
    KIND             D_CHAR,
    ACCOUNT_DATE     D_DATE,
    ACCOUNT_YEAR     D_JJ,
    NUMBER           D_ID,
    TEXT             DNTEXT50,
    ACCOUNT_CURRENCY D_CURRENCY,
    AMOUNT_DEBIT     D_CURR,
    AMOUNT_CREDIT    D_CURR,
    INVOICE_ID       D_ID,
    WORK_ID          D_ID
);
liefert folgende Fehlermeldung:
Zitat:

This operation is not defined for system tables.
unsuccessful metadata update.
CREATE VIEW failed.
arithmetic exception, numeric overflow, or string truncation.
Da dies die erste Tabelle ist, die angelegt werden soll, (noch) keine VIEW vorgesehen ist und alle angegebenen Domains bekannt sind, ist mir die Fehlermeldung völlig schleierhaft, zumal es bei einer anderen Datenbank mit UNICODE_FSS funktioniert hat. Der gleiche Fehler tritt auch beim Tabelleneditor von IBExpert auf, und zwar schon mit nur einem Feld "ID".

Hat jemand eine Idee, was da passiert? (IBExpert dürfte nicht "schuld" sein, weil ich es zunächst mit einer 2006-Version versucht hatte und sich nichts geändert hat.) Danke! Jrügen

bluesbear 15. Mai 2008 16:15

Re: [Firebird] Create Table schlägt fehl wegen UTF8?
 
Moin Jürgen,
gib doch mal soviel SQL Code rüber wie ich brauche, um das hier ausprobieren zu können.

Jürgen Thomas 15. Mai 2008 16:42

Re: [Firebird] Create Table schlägt fehl wegen UTF8?
 
Ich hoffe, es hilft:
SQL-Code:
SET SQL DIALECT 3;
SET NAMES UTF8;

CREATE DATABASE 'F:\VS_NET\Daten\Systemdaten\VS-Adressen.FDB'
USER 'XXX' PASSWORD 'YYY'
PAGE_SIZE 16384
DEFAULT CHARACTER SET UTF8;

/*                           User Defined Functions                          */
DECLARE EXTERNAL FUNCTION ABS
    DOUBLE PRECISION
    RETURNS DOUBLE PRECISION BY VALUE
    ENTRY_POINT 'IB_UDF_abs' MODULE_NAME 'ib_udf';
/*  usw. 37 Standardfunktionen */

/*                                  Domains                                  */
/*  beschränkt auf die für CreateTable vorgesehenen */
CREATE DOMAIN DNTEXT50 AS VARCHAR(50);
CREATE DOMAIN DVUSER AS VARCHAR(35) DEFAULT USER NOT NULL;
CREATE DOMAIN D_CHAR AS CHAR(1) DEFAULT '' NOT NULL;
CREATE DOMAIN D_CURR AS DECIMAL(18,2) DEFAULT 0 NOT NULL;
CREATE DOMAIN D_CURRENCY AS CHAR(3) DEFAULT 'EUR' NOT NULL;
CREATE DOMAIN D_DATE AS DATE DEFAULT 'NOW' NOT NULL;
CREATE DOMAIN D_DATETIME AS TIMESTAMP DEFAULT 'NOW' NOT NULL;
CREATE DOMAIN D_I255 AS INTEGER DEFAULT 0 NOT NULL
   CHECK (VALUE BETWEEN 0 AND 255);
CREATE DOMAIN D_ID AS INTEGER DEFAULT 0 NOT NULL;
CREATE DOMAIN D_JJ AS SMALLINT DEFAULT 0 NOT NULL
   CHECK (VALUE BETWEEN 100 AND 9999);

/*                                 Generators                                */
CREATE GENERATOR ACCOUNT_ID;
CREATE GENERATOR A_ENTRY_ID;
/*  usw. insgesamt 31 Generatoren */
Der nächste Schritt sollten die Tables sein, beginnend mit der im ersten Beitrag genannten.

Jürgen

kretabiker 15. Mai 2008 17:07

Re: [Firebird] Create Table schlägt fehl wegen UTF8?
 
Hallo Jürgen,

ich habe dein Script unter Firebird 2.0.1 ausprobiert - sowohl in FlameRobin als auch im SQLHammer läuft es ohne Probleme durch, die DB ist hinterher wie gewünscht erzeugt.

Gruß

Udo "Kretabiker" Treichel

bluesbear 15. Mai 2008 17:57

Re: [Firebird] Create Table schlägt fehl wegen UTF8?
 
Hallo Kretabiker,
na, da war ich mal wieder zu langsam. <g>
Ich erlaube mir mal, hier in Jürgens Thread meinerseits eine dumme Anfängerfrage zu stellen:
Wie kann man in FlameRobin ein script mit "CREATE DATABASE ..." ausführen?
Bin ich blind? :gruebel:

Jürgen Thomas 15. Mai 2008 17:59

Re: [Firebird] Create Table schlägt fehl wegen UTF8?
 
Dann liegt es vielleicht doch an der "Personal Version" von IBExpert. Das konnte ich mir zwar nicht vorstellen, aber die Unicode-Unterstützung ist ja eingeschränkt. Ich werde es mal direkt aus einem NET-Programm heraus probieren.

Danke für die Versuche! Jürgen

kretabiker 15. Mai 2008 18:12

Re: [Firebird] Create Table schlägt fehl wegen UTF8?
 
Hallo bluesbear,

stimmt, du hast recht - in FlameRobin habe ich die Datenbank vorher von Hand anlegen müssen und habe dann nur die Skripte für die Domains und die Tabelle ausführen lassen (was funktioniert hat)... Mea culpa, hätte ich natürlich dazu schreiben müssen.

SQLHammer hat das gesamte Script verarbeitet.

Gruß

Udo "Kretabiker" Treichel

bluesbear 15. Mai 2008 18:20

Re: [Firebird] Create Table schlägt fehl wegen UTF8?
 
Hallo Kretabiker,

ahh, ok, ich dachte schon, ich hätte wieder was verpennt. :stupid:
So hat das hier übrigens auch geklappt (Firebird 2.1) - wuppdi (<- was ist das eigentlich <g>) war die Tabelle da.

IBExpert 16. Mai 2008 19:28

Re: [Firebird] Create Table schlägt fehl wegen UTF8?
 
Zitat:

Zitat von Jürgen Thomas
Dann liegt es vielleicht doch an der "Personal Version" von IBExpert. Das konnte ich mir zwar nicht vorstellen, aber die Unicode-Unterstützung ist ja eingeschränkt.

Die Einschränkung gilt nur für die Eingabe Editoren, die in der Vollversion einen speziellen Unicode Modus haben.
Das hat aber mit dem Script nichts zu tun und wie schon auf firebirdexperts.com beschrieben funktionierte das script ohne Einschränkung.

Jürgen Thomas 17. Mai 2008 12:58

Re: [Firebird] Create Table schlägt fehl wegen UTF8?
 
Ich bitte bei allen Beteiligten (vor allem natürlich bei IBExpert = Holger Klemt) um Entschuldigung für den Fehlalarm: Entgegen meiner Annahme, dass ich immer mit der aktuellen Version arbeiten würde, hatte ich noch FB 2.0 RC 4 im Einsatz. Ich habe jetzt das Update auf 2.1.0.17798 installiert, und alles funktioniert wie gewünscht. Jürgen


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:59 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