AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken C# [Firebird] Create Table schlägt fehl wegen UTF8?
Thema durchsuchen
Ansicht
Themen-Optionen

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

Ein Thema von Jürgen Thomas · begonnen am 15. Mai 2008 · letzter Beitrag vom 17. Mai 2008
Antwort Antwort
Jürgen Thomas

Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
 
#1

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

  Alt 15. Mai 2008, 17:10
Datenbank: Firebird • Version: 2.0 • Zugriff über: IBExpert Personal 2008.05.03
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
#D mit C# für NET, dazu Firebird
früher: Delphi 5 Pro, Delphi 2005 Pro mit C# (also NET 1.1)
Bitte nicht sauer sein, wenn ich mich bei Delphi-Schreibweisen verhaue; ich bin inzwischen an C# gewöhnt.
  Mit Zitat antworten Zitat
bluesbear

Registriert seit: 14. Dez 2005
Ort: Hahnstätten
355 Beiträge
 
Delphi 2007 Enterprise
 
#2

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

  Alt 15. Mai 2008, 17:15
Moin Jürgen,
gib doch mal soviel SQL Code rüber wie ich brauche, um das hier ausprobieren zu können.
Klaus M. Hoffmann
  Mit Zitat antworten Zitat
Jürgen Thomas

Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
 
#3

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

  Alt 15. Mai 2008, 17:42
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 'EURNOT NULL;
CREATE DOMAIN D_DATE AS DATE DEFAULT 'NOWNOT NULL;
CREATE DOMAIN D_DATETIME AS TIMESTAMP DEFAULT 'NOWNOT 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
#D mit C# für NET, dazu Firebird
früher: Delphi 5 Pro, Delphi 2005 Pro mit C# (also NET 1.1)
Bitte nicht sauer sein, wenn ich mich bei Delphi-Schreibweisen verhaue; ich bin inzwischen an C# gewöhnt.
  Mit Zitat antworten Zitat
kretabiker

Registriert seit: 10. Mär 2005
Ort: Bargteheide
183 Beiträge
 
Delphi 12 Athens
 
#4

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

  Alt 15. Mai 2008, 18:07
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
Udo Treichel
  Mit Zitat antworten Zitat
bluesbear

Registriert seit: 14. Dez 2005
Ort: Hahnstätten
355 Beiträge
 
Delphi 2007 Enterprise
 
#5

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

  Alt 15. Mai 2008, 18:57
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?
Klaus M. Hoffmann
  Mit Zitat antworten Zitat
Jürgen Thomas

Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
 
#6

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

  Alt 15. Mai 2008, 18:59
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
#D mit C# für NET, dazu Firebird
früher: Delphi 5 Pro, Delphi 2005 Pro mit C# (also NET 1.1)
Bitte nicht sauer sein, wenn ich mich bei Delphi-Schreibweisen verhaue; ich bin inzwischen an C# gewöhnt.
  Mit Zitat antworten Zitat
kretabiker

Registriert seit: 10. Mär 2005
Ort: Bargteheide
183 Beiträge
 
Delphi 12 Athens
 
#7

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

  Alt 15. Mai 2008, 19:12
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
Udo Treichel
  Mit Zitat antworten Zitat
bluesbear

Registriert seit: 14. Dez 2005
Ort: Hahnstätten
355 Beiträge
 
Delphi 2007 Enterprise
 
#8

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

  Alt 15. Mai 2008, 19:20
Hallo Kretabiker,

ahh, ok, ich dachte schon, ich hätte wieder was verpennt.
So hat das hier übrigens auch geklappt (Firebird 2.1) - wuppdi (<- was ist das eigentlich <g>) war die Tabelle da.
Klaus M. Hoffmann
  Mit Zitat antworten Zitat
Benutzerbild von IBExpert
IBExpert

Registriert seit: 15. Mär 2005
671 Beiträge
 
FreePascal / Lazarus
 
#9

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

  Alt 16. Mai 2008, 20:28
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.
Holger Klemt
www.ibexpert.com - IBExpert GmbH
Oldenburger Str 233 - 26203 Wardenburg - Germany
IBExpert and Firebird Power Workshops jederzeit auch als Firmenschulung
  Mit Zitat antworten Zitat
Jürgen Thomas

Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
 
#10

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

  Alt 17. Mai 2008, 13:58
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
#D mit C# für NET, dazu Firebird
früher: Delphi 5 Pro, Delphi 2005 Pro mit C# (also NET 1.1)
Bitte nicht sauer sein, wenn ich mich bei Delphi-Schreibweisen verhaue; ich bin inzwischen an C# gewöhnt.
  Mit Zitat antworten Zitat
Antwort Antwort


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 06:53 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