Wie konvertiere ich
mein Informix Datenbank-Schema zu QueriX?
Das Datenbank-Schema wird nach QueriX migriert, damit der Output des
Schemas in eine .4gl-Datei geändert wird, welche dann mit Querix
kompiliert und ausgeführt werden kann. Unten ein Beispiel eines Datenbank-Schemas:
create
table "root".my_stuff
(
my_num smallint not null,
first_name char(10) not null,
last_name char(10) not null
);
revoke all on "root".my_stuff from "public";
Der erste Schritt ist, die User-Name vom Schema zu entfernen:
create table my_stuff
(
my_num smallint not null,
first_name char(10) not null,
last_name char(10) not null
);
revoke all on my_stuff from "public";
Dies könnte einiges Überlegen erfordern, da die für mehrere
Usere kopierten Tabellen, nur einmal erscheinen müssen, z.B:
create table "andy".fish
(
hallibut char(20)
)
create table "rod".fish
(
hallibut char(20)
)
In diesem Fall sind die Tabellen ohne User-Namen gleich. Daher ist nur
eine Deklaration der Tabellen notwendig.
Danach muss der Revoke-Befehl entfernt werden;
create table my_stuff
(
my_num smallint not null,
first_name char(10)not null,
last_name char(10) not null
);
Als Nächstes soll das Semikolon am Ende der Tabelle entfernt werden:
create table my_stuff
(
my_num smallint not null,
first_name char(10) not null,
last_name char(10) not null
)
Und zuletzt, um ein 4GL-Programm aus der Datei zu erzeugen, werden die
üblichen DATABASE, MAIN and END MAIN Key-Words an den entsprechenden
Stellen dazugefügt:
DATABASE my_database
MAIN
create table my_stuff
( my_num smallint not null,
first_name char(10) not null,
last_name char(10) not null
)
END MAIN
Danach wird das Program kompiliert und ausgeführt. Es ist auch hilfreich,
ein Program zu entwickeln, um die Datenbank zu "droppen":
DATABASE
my_database
MAIN
drop table my_stuff
END MAIN
Und das war´s.
Zurück
Wie kann ich es vermeiden, den Datenbank-Namen für Oracle und Informix
ändern zu müssen?
Sie müssen die Datei '$QUERIXDIR/etc/dbtrans' mit dem folgenden
Eintrag editieren:
{database name} * * {database login}/{database password}
Dies ermöglicht Ihnen die Datenbank mit dem Namen anzusprechen,
und nicht das Login/pw. Beachten Sie: wenn die Datenbank sich auf einem
anderen Rechner befindet als da wo der Eintrag vorgenommen wird, muss
der Eintrag wie folgt sein:
{database name} * * {database login}/{database password}@{server
name}
Zurück
|