Results 1 to 7 of 7

Thread: firebird dialect converteren 1 naar 3 lukt niet

  1. #1

    firebird dialect converteren 1 naar 3 lukt niet

    Hallo dan,

    Ik probeer met ibconsole 2 databases te converteren van dialect 1 naar 3, maar dit lukt bij de ene wel en de andere niet. De metadata van de database zijn praktisch gelijk aan elkaar op onderstaande regels na. De rest komt exact overeen (triggers, domains etc). Het eerste onder GOEDE is wel te converteren. Het tweede deel onder FOUTE is niet te converteren. Waarom?

    GOEDE:

    /* CREATE DATABASE 'C:\Trovan Access Guard developement\data\tag.gdb' PAGE_SIZE 4096
    DEFAULT CHARACTER SET NONE */
    CREATE TABLE TOEGANGSLEVELDB
    (
    LEVELNAME VARCHAR(60) NOT NULL,
    LEVELDAYSUNDAY T_YESNO_DEFAULT_NO,
    LEVELDAYMONDAY T_YESNO_DEFAULT_NO,
    LEVELDAYTUESDAY T_YESNO_DEFAULT_NO,
    LEVELDAYWEDNESDAY T_YESNO_DEFAULT_NO,
    LEVELDAYTHURSDAY T_YESNO_DEFAULT_NO,
    LEVELDAYFRIDAY T_YESNO_DEFAULT_NO,
    LEVELDAYSATURDAY T_YESNO_DEFAULT_NO,
    LEVELTIMESTART VARCHAR(5),
    LEVELTIMEEND VARCHAR(5),
    CONSTRAINT TOEGANGSLEVELDB_PRIMARY PRIMARY KEY (LEVELNAME)
    );

    CREATE TABLE UNITDB
    (
    LOCATION VARCHAR(30) NOT NULL,
    UNITNUMBER SMALLINT NOT NULL,
    USE_LEDD T_YESNO_DEFAULT_YES,
    USE_LEDA T_YESNO_DEFAULT_YES,
    USE_BUZZER T_YESNO_DEFAULT_YES,
    RELAISON T_YESNO_DEFAULT_NO,
    LEDTIME INTEGER DEFAULT 5,
    READDELAY INTEGER DEFAULT 200,
    ALARMUNIT T_YESNO_DEFAULT_NO,
    SHOWINOPENCLOSE T_YESNO_DEFAULT_YES,
    USE_TRIGGER T_YESNO_DEFAULT_NO,
    USE_REMOTE T_YESNO_DEFAULT_NO,
    USE_APB T_YESNO_DEFAULT_NO,
    USE_AUTOCLOSE T_YESNO_DEFAULT_NO,
    OPENINGTIME VARCHAR(5),
    CLOSINGTIME VARCHAR(5),
    HOTKEY CHAR(10),
    INOUT SMALLINT,
    CONSTRAINT UNITDB_PRIMARY PRIMARY KEY (LOCATION),
    CONSTRAINT UNITDB_UNIQUE_UNITNUMBER UNIQUE (UNITNUMBER)
    );

    FOUTE:

    /* CREATE DATABASE 'C:\Trovan Access Guard developement\data\tag.gdb' PAGE_SIZE 1024
    DEFAULT CHARACTER SET */
    CREATE TABLE TOEGANGSLEVELDB
    (
    LEVELNAME VARCHAR(60) NOT NULL,
    LEVELDAYSUNDAY T_YESNO_DEFAULT_NO,
    LEVELDAYMONDAY T_YESNO_DEFAULT_NO,
    LEVELDAYTUESDAY T_YESNO_DEFAULT_NO,
    LEVELDAYWEDNESDAY T_YESNO_DEFAULT_NO,
    LEVELDAYTHURSDAY T_YESNO_DEFAULT_NO,
    LEVELDAYFRIDAY T_YESNO_DEFAULT_NO,
    LEVELDAYSATURDAY T_YESNO_DEFAULT_NO,
    LEVELTIMESTART VARCHAR(5) NOT NULL,
    LEVELTIMEEND VARCHAR(5) NOT NULL,
    CONSTRAINT TOEGANGSLEVELDB_PRIMARY PRIMARY KEY (LEVELNAME)
    );

    CREATE TABLE UNITDB
    (
    LOCATION VARCHAR(30) NOT NULL,
    UNITNUMBER SMALLINT NOT NULL,
    USE_LEDD T_YESNO_DEFAULT_YES,
    USE_LEDA T_YESNO_DEFAULT_YES,
    USE_BUZZER T_YESNO_DEFAULT_YES,
    RELAISON T_YESNO_DEFAULT_NO,
    LEDTIME INTEGER DEFAULT 5,
    READDELAY INTEGER DEFAULT 200,
    ALARMUNIT T_YESNO_DEFAULT_NO,
    SHOWINOPENCLOSE T_YESNO_DEFAULT_YES,
    USE_TRIGGER T_YESNO_DEFAULT_NO,
    USE_REMOTE T_YESNO_DEFAULT_NO,
    USE_APB T_YESNO_DEFAULT_NO,
    USE_AUTOCLOSE T_YESNO_DEFAULT_NO,
    OPENINGTIME VARCHAR(5),
    CLOSINGTIME VARCHAR(5),
    HOTKEY CHAR(10),
    INOUT SMALLINT,
    UNIQUE (UNITNUMBER),
    CONSTRAINT UNITDB_PRIMARY PRIMARY KEY (LOCATION)
    );

  2. #2
    By the way, met lukt niet bedoel ik dat ik onder de properties van mijn database (in ibconsole) het dialect 3 wel kan kiezen en bevestigen, maar dat dit bij nog een keer de properties openen weer op 1 staat.

  3. #3
    Ik zie dat je werkt met IBConsole.

    TIP Probeer eens IBOConsole (Met dank aan CompuChip)
    Dit werkt stukke makkelijker.
    Helaas kan ik je verder niet helpen met je probleem
    De beste manier om te leren is door fouten te maken.
    80 procent van alle leugens die jij en ik vertellen blijft onopgemerkt

  4. #4
    Originally posted by r.nijenhuis
    By the way, met lukt niet bedoel ik dat ik onder de properties van mijn database (in ibconsole) het dialect 3 wel kan kiezen en bevestigen, maar dat dit bij nog een keer de properties openen weer op 1 staat.
    Maar is dit niet alleen de Dialect waarmee je de connectie maakt? Converteren zul je echt met gfix moeten doen. Of bedoel je iets anders?

    Groeten,
    Arno
    Nederlandse Firebird Nieuwsgroep
    Hoe meer je weet, hoe meer je beseft hoe weinig je weet.

  5. #5
    Henske: Ik ga het proberen


    ArnoBrinkman: Het verschil tussen de dialect is toch ook of je bijvoorbeeld TIME en DATE kunt gebruiken. Bij dialect 1 bestaat al een TIMESTAMP-achtig veldtype.

    Ik wil dit dus nu omzetten om dus afzonderlijke de datum en tijd te kunnen weergeven/opslaan.

    Ik heb bij InterbaseExpress 5.04 (de laatste versie voor Delphi 5 dus) ook het component IBConfigservice staan. Dit component kan de bewerking doen van dialect 1 naar 3. Dit werkt dus ook bij de GOEDE database en niet bij de FOUTE database. Dit component werkt dus exact hetzelfde als IBConsole.

    Het converteren gaat dus ook met IBConsole want je kunt gewoon daar een ander dialect kiezen en ibconsole zet het dan zelf om.

    Het 'grappige' is dus ook bij de onderstaande code:

    Code:
            IBDatabase.Close;
            IBConfigService1.DatabaseName := IBDatabase.DatabaseName;
            IBConfigService1.Attach;
            IBConfigService1.SetDBSqlDialect(3);
            While IBConfigService1.IsServiceRunning do;
            IBConfigService1.Detach;
            IBDatabase.SQLDialect := 3;
            IBDatabase.Open;
    Deze code zet het dialect dus om van het bestaande (1 dus) naar dialect 3.

    Bij de GOEDE zie je na de IBDatabase.Open dat IBDatabase.SQLDialect op 3 staat.
    Bij de FOUTE is na de IBDatabase.Open de IBDatabase.SQLDialect weer teruggezet op 1. (wat de hint weergeeft als ik na de open een break zet)

    Hierna create ik dus veld met veldtype DATE en TIME en dit gaat dus fout in dialect 1, want hierin bestaan deze veldtypes niet.


    Lang verhaal, maar wel duidelijk hoop ik.

    Iemand nu een idee?

  6. #6
    Nog iets opgevallen.

    Wanneer je eerst een backup draait en deze restored, dan kun je daarna wel het dialect aanpassen.

    Zit er iets van recovery of reparatie in een backup createn/restoren?

  7. #7
    Hmm,

    Klinkt alsof er inderdaad iets met de database is. Je zou eens kunnen kijken of gfix een melding geeft op de "FOUTE" database.

    Groeten,
    Arno
    Nederlandse Firebird Nieuwsgroep
    Hoe meer je weet, hoe meer je beseft hoe weinig je weet.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. Replies: 8
    Last Post: 22-May-04, 03:02
  2. Replies: 2
    Last Post: 17-Oct-03, 14:17
  3. converteren naar Delphi 6
    By joostingh in forum Algemeen
    Replies: 2
    Last Post: 22-Feb-02, 12:58
  4. Herhaling: Class aanroepen lukt niet
    By ernst in forum Algemeen
    Replies: 16
    Last Post: 19-Dec-01, 11:08
  5. Word doc converteren naar PDF formaat
    By Maiko in forum Algemeen
    Replies: 3
    Last Post: 18-Sep-01, 13:24

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •