AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Unterschiede beim Insert, Create und Update????
Thema durchsuchen
Ansicht
Themen-Optionen

Unterschiede beim Insert, Create und Update????

Ein Thema von O.T. · begonnen am 29. Jun 2004 · letzter Beitrag vom 30. Jun 2004
Antwort Antwort
O.T.

Registriert seit: 5. Sep 2003
Ort: München
13 Beiträge
 
#1

Unterschiede beim Insert, Create und Update????

  Alt 29. Jun 2004, 17:18
Hi ihr lieben.

Hab mal ne Frage. Und zwar bastelle ich gerade an einem Datenbank-Konvertierungs Tool das Datenbanken von verschiedenen Anbietern konvertiert. Z.B. ORACLE->INFORMIX oder ähnliches.

Dazu schreib ich die Strukturen und die Daten in eine XML-Datei, von der ich dann später wieder auslese.

Nun meine Frage, muss ich wenn ich die Insert und Create Table Statements zusammenbaue ne verschieden Syntax beachten?
Sind die Create und Insert Statements bei Oracle anders als bei anderen Anbietern?

Ich habe zu berücksichtigen:
MSSQL
MySQL
ORACLE
Interbase
Informix

Kann mir jemand eine Kurzreferenz oder ähnliches empfehlen, in der ich die Unterschiede nachschauen kann, oder eine Internetseite, oder weiss von euch einer vielleicht die Unterschiede??

Wäre nett wenn ihr mir helfen könnt...und bedanke mich schon im voraus.

Machts gut.....

  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Unterschiede beim Insert, Create und Update????

  Alt 29. Jun 2004, 17:40
Hallo O.T.,

ich vermute dass es beim Create unterschiedliche Datentypen geben könnte. Auch das Herauslesen der Schlüsselfelder oder der Fremdschlüssel könnte in verschiedenen Systemtabellen zu finden sein. Das Insert Statement sollte bei allen funktionieren.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#3

Re: Unterschiede beim Insert, Create und Update????

  Alt 29. Jun 2004, 18:32
Zitat:
Sind die Create und Insert Statements bei Oracle anders als bei anderen Anbietern?
Sie sind sich ziemlich ähnlich, aabeeeer....

Ein Oracle-DBA wird dich mit Anlauf aus dem Fenster werfen, wenn du Varchar statt Varchar2, 10 "normale" Indizes anstatt 2 oder 3 Bitmap-Indizes, BLob für Texte anstatt CLob bzw CLob für Binärdaten anstatt BLob nimmst, usw. .
Nimmst du LONG für lange Texte, ist es sofort aus.


Wie gut kennst du dich mit den DB-internen Sprachen für Trigger, SPs & co aus?
Genau hier versagen sämtliche Tools zur DB-konvertierung, die ich bis jetzt gesehen habe.
Du hast schneller 100 Monster-DBs aufgesetzt als ein Tool zu programmiert, dass diese Sprachen ineinander "übersetzen" kann. (Das wäre auch ein Mammutprojekt )

Was ich damit sagen will, du musst ein Profi in allen DBs sein, die du untertützen willst. Schließlich musst du auch ihre Vorzüge und Macken kennen (Ein falscher Indextyp/Spaltentyp und Ora wird zur Schnecke).
Da ich mch nur mit Oracle wirklich gut auskenne, würde ich mich an so ein Projekt nicht herantrauen.

Wie würdest du zum Bleistift diese Tabelle für den MS SQL Svr umsetzen?
SQL-Code:
CREATE TYPE address_objtyp AS OBJECT (
  street VARCHAR2(200),
  city VARCHAR2(200),
  state CHAR(2),
  zipcode VARCHAR2(20));

CREATE TABLE address_objtab OF address_objtyp ;


CREATE TYPE phone_objtyp AS OBJECT (
  location VARCHAR2(15),
  num VARCHAR2(14));

CREATE TYPE phone_ntabtyp AS TABLE OF phone_objtyp;

CREATE TABLE people_reltab (
  id NUMBER(4) CONSTRAINT pk_people_reltab PRIMARY KEY,
  name_obj name_objtyp,
  address_ref REF address_objtyp SCOPE IS address_objtab,
  phones_ntab phone_ntabtyp)
  NESTED TABLE phones_ntab STORE AS phone_store_ntab ;

CREATE INDEX address_ref_idx ON people_reltab (address_ref) ;
Das ist nur eine einfache Beipieltabelle für nested tables aus der Ora-Doku, "real life"-Tabellen sind oft viel verschachtelter (100-200 Zeilen DDL sind keine Seltenheit für performance kritische Tabellen, da wird dann nur noch mit REFs um sich geworfen).

Ich will dich jetzt nicht komplett demotivieren, du solltest aber wissen, dass du höchstens DDL für Spaltennamen, typen und Primär-/Fremdschlüssel für simple Tabellen nachbilden kannst. Auf den "großen" DBs wirst du solche Tabellen selten finden (sonst läuft da irgendwas verdammt schief )
  Mit Zitat antworten Zitat
O.T.

Registriert seit: 5. Sep 2003
Ort: München
13 Beiträge
 
#4

Re: Unterschiede beim Insert, Create und Update????

  Alt 30. Jun 2004, 11:42
Mmmhh....

Scheint doch kompliziert zu sein. Aber mein Glück: ich muss nur die Datenbank unserer Software konvertieren und keine ausserbetriebliche, und ich glaube die Tabellen sind hier nicht so kompliziert wie du sie hier darstellst. Und die XML-Datei Erstellung klappt schon wunderbar, speichert auch die Indices mit, schaut ungefähr so aus:


Code:


<Datenbank>
-<Metadaten>
 -<Tabelle>
  -<Felder>
    <Feld name="vorname" Typ="Varchar" Length="30"/>
    <Feld name="lfdnr" typ="Integer"/>
   </Felder>
  -<Indices>
   -<Index name="i_adr1" typ="ixunique">
     <Feld name="adrnr"/>
   </Index>
  </Indices>
 </Tabelle>
 </Metadaten>
-<Daten>
 -<Tabelle>
  -<Datensatz>
    <Feld name="vorname">Hans</Feld>
    <Feld name="lfdnr">1</Feld>
   </Datensatz>
  </Tabelle>
 </Daten>
</Datenbank
..und wie gesagt, es klappt auch schon.

Mir geht es auschließlich darum aus so einer, nicht alzu komplizierten XML-Datei die Create und Insert Statements zu erstellen, glaub so mit Objekten in der Datenbanken haben wir nicht, allerdings blobs und unter Informix auch serial Felder....doch im Moment interessiert mich vorerst nur die Syntax der einzelnen Create Statements...

Aber danke euch allen und bis dann..........
  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 08:23 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