Version 2004
Überblick
Dieses Kapitel enthält Befehle, die 4th Dimension ermöglichen, via Standardprotokolle auf Daten in anderen Anwendungen zuzugreifen. In der derzeitigen Version von 4th Dimension sind nur ODBC Befehle verfügbar.
Der ODBC (Open DataBase Connectivity) Standard bietet eine Library mit standardisierten Funktionen, die einer Anwendung wie 4th Dimension via SQL Sprache ermöglichen, auf jedes ODBC-kompatible Datenmanagement-System, wie Datenbanken, Tabellenkalkulation, etc. zuzugreifen.
Hinweis: 4th Dimension ermöglicht auch, Daten von einer ODBC Quelle in den Benutzermodus zu importieren bzw. daraus zu exportieren. Weitere Informationen dazu finden Sie im Handbuch 4th Dimension Benutzermodus.
Die high-level ODBC Befehle von 4th Dimension eignen sich für einfache Vorgehensweisen, über die 4th Dimension Anwendungen mit ODBC Datenquellen kommunizieren können. Für eine komplexere Unterstützung von ODBC Standards benötigen Sie 4D ODBC Pro, das "low level" ODBC Plug-In for 4D.
Arbeitsweise der integrierten ODBC Befehle
Die integrierten ODBC Befehle von 4th Dimension führen folgendes aus:
Die Reichweite einer Verbindung ist der Prozess. Wollen sie mehrere gleichzeitige Verbindungen verwalten, müssen Sie mit dem Befehl ODBC LOGIN einen Prozess starten.
Mit dem Befehl ODBC CANCEL LOAD können Sie mehrere SELECT-Anfragen in derselben Verbindung ausführen.
Mit dem Befehl ON ERR CALL können Sie jeden ODBC Fehler abfangen, der während der Ausführung eines ODBC Befehls auftritt. Über den Befehl ODBC GET LAST ERROR erhalten Sie zusätzliche Informationen.
Entsprechung der Datentypen
Nachfolgende Tabelle zeigt die Entsprechungen, die 4th Dimension automatisch zwischen 4D und SQL Datentypen herstellt:
4D Typ | SQL Typ |
C_STRING | SQL_C_CHAR |
C_TEXT | SQL_C_CHAR |
C_REAL | SQL_C_DOUBLE |
C_DATE | SQL_C_TYPE_DATE |
C_TIME | SQL_C_TYPE_TIME |
C_BOOLEAN | SQL_C_BIT |
C_INTEGER | SQL_C_SHORT |
C_LONGINT | SQL_C_SLONG |
C_BLOB | SQL_C_BINARY |
C_PICTURE | SQL_C_BINARY |
C_GRAPH | SQL_C_BINARY |
Referenz auf 4th Dimension Objekte in ODBC Anfragen setzen
4th Dimension bietet zwei Wege, um 4D Objekte in ODBC Anfragen einzufügen: Direkte Assoziation und Parameter setzen über den Befehl ODBC SET PARAMETER.
Bei der direkten Assoziation müssen die 4D Objekte, wie Variablen, Arrays oder Felder, die im Anfragetext verwendet werden, zwischen spitze Klammern gesetzt werden. Hier ein Beispiel:
INSERT INTO emp (empnum,ename) VALUES (<<vEmpnum>>,<<vEname>>)
In diesem Beispiel ersetzen die aktuellen Werte der 4D Variablen vEmpnum und vEname die Parameter, wenn die Anfrage ausgeführt wird. Das funktioniert auf dieselbe Art mit 4D Feldern und Arrays.
Diese einfache Syntax hat jedoch den Nachteil, dass sie nicht mit den SQL Standards im Einklang ist und keine Ausgabeparameter zulässt. Um dem abzuhelfen, verwenden Sie den BefehlODBC SET PARAMETER. Damit integrieren Sie jedes 4D Objekt in eine Anfrage und definieren seine Verwendungsart (Eingabe, Ausgabe oder beides). Auf diese Weise wird eine standardmäßige Syntax erstellt. Weitere Informationen dazu finden Sie unter dem Befehl ODBC SET PARAMETER.
Beispiele für direkte Zuweisung von 4D Objekten
1. Dieses Beispiel führt eine ODBC Anfrage aus, die direkt die zugewiesenen 4D Arrays verwendet:
ARRAY TEXT(MyTextArray;10) ARRAY LONGINT(MyLongintArray;10) For(vCounter;1;Size of array(MyTextArray)) MyTextArray{vCounter}:="Text"+String(vCounter) MyLongintArray{vCounter}:=vCounter End for ODBC LOGIN("mysql";"root";"") SQLStmt:="insert into app_testTable (alpha_field, longint_field) VALUES (<<MyTextArray>>, <<MyLongintArray>>)" ODBC EXECUTE(SQLStmt)
2. Dieses Beispiel führt eine ODBC Anfrage aus, die direkt die zugewiesenen 4D Felder verwendet:
ALL RECORDS([Table 2]) ODBC LOGIN("mysql";"root";"") SQLStmt:="insert into app_testTable (alpha_field, longint_field) VALUES (<<[Table 2]Field1>"+">,<<[Table 2]Field2>>)" ODBC EXECUTE(SQLStmt)