Befehle für externe Datenquellen

4D - Documentation   Français   English   German   4D Programmiersprache, Befehle nach Themen   4D Programmiersprache, Befehle alphabetisch   4D Programmiersprache, Konstanten nach Themen   Back   Previous   Next

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 TypSQL Typ
C_STRINGSQL_C_CHAR
C_TEXTSQL_C_CHAR
C_REALSQL_C_DOUBLE
C_DATESQL_C_TYPE_DATE
C_TIMESQL_C_TYPE_TIME
C_BOOLEANSQL_C_BIT
C_INTEGERSQL_C_SHORT
C_LONGINTSQL_C_SLONG
C_BLOBSQL_C_BINARY
C_PICTURESQL_C_BINARY
C_GRAPHSQL_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)

4D - Documentation   Français   English   German   4D Programmiersprache, Befehle nach Themen   4D Programmiersprache, Befehle alphabetisch   4D Programmiersprache, Konstanten nach Themen   Back   Previous   Next