4D v16

外部への接続

ホーム

 
4D v16
外部への接続

外部への接続  


 

 

4Dでは外部データベースを使用することができます。つまりローカルデータベースではないデータベースに対してSQLクエリを実行できます。これを行うために、ODBCを使用して外部データソースに接続するか、直接他の4Dデータベースに接続することができます。
以下は外部データベースとの接続を管理するためのコマンドです:

  • Get current data source によりアプリケーションが使用するODBCデータソースを知ることができます。
  • GET DATA SOURCE LIST は、マシンにインストールされたデータソースのリストを取得するために使用します。
  • SQL LOGIN は、直接あるいはマシンにインストールされたODBCデータソースを経由して外部データベースに接続するために使用します。
  • SQL LOGOUT は、外部への接続を閉じ、ローカルの4Dデータベースに再接続するために使用します。
  • USE DATABASE (SQL コマンド) は、4D SQLエンジンを使用して外部4Dデータベースを開くために使用します。

以下の例題は外部データソース (ORACLE) に接続し、ORACLEデータベースからデータを取得、そしてORACLEデータベースとの接続を閉じ、ローカルデータベースに再接続する方法を示してい ます。
システムには"Test_ORACLE_10g"というデータソース名が登録されているものとします。

 ARRAY TEXT(aDSN;0)
 ARRAY TEXT(aDS_Driver;0)
 C_TEXT($Crt_DSN;$My_ORACLE_DSN)
 ARRAY TEXT(aTitles;0)
 ARRAY LONGINT(aNrActors;0)
 ARRAY LONGINT(aSoldTickets;0)
 ARRAY INTEGER(aMovieYear;0)
 ARRAY TEXT(aTitles;0)
 ARRAY TEXT(aDirectors;0)
 ARRAY TEXT(aMedias;0)
 C_LONGINT($MovieYear)
 C_TEXT($tQueryTxt)
 REDUCE SELECTION([MOVIES];0)
 $MovieYear:=1960
  ` デフォルトでカレントDSNはローカルデータベース (";DB4D_SQL_LOCAL;"、SQL_INTERNAL定数の値)
 $Crt_DSN:=Get current data source
 ALERT("The current DSN is "+$Crt_DSN)
 
  ` ローカルデータベースに操作を行う
 Begin SQL
    SELECT Year_of_Movie, Title, Director, Media, Sold_Tickets
    FROM MOVIES
    WHERE Year_of_Movie >= :$MovieYear
    INTO :aMovieYear, :aTitles, :aDirectors, :aMedias, :aSoldTickets;
 End SQL
 
  ` ODBCマネージャーに定義されたUserタイプのデータソースを取得
 GET DATA SOURCE LIST(User data source;aDSN;aDS_Driver)
 $My_ORACLE_DSN:="Test_Oracle_10g"
 If(Find in array(aDSN;$My_ORACLE_DSN)>0)
  ` 4Dと$My_ORACLE_DSN="Test_Oracle_10g"データソース間の接続を確立
 
 SQL LOGIN($My_ORACLE_DSN;"scott";"tiger";*)
 
  ` カレントDSNはORACLEデータベース
 $Crt_DSN:=Get current data source
 ALERT("The current DSN is "+$Crt_DSN)
 ARRAY TEXT(aTitles;0)
 ARRAY LONGINT(aNrActors;0)
 ARRAY LONGINT(aSoldTickets;0)
 ARRAY INTEGER(aMovieYear;0)
 ARRAY TEXT(aTitles;0)
 ARRAY TEXT(aDirectors;0)
 ARRAY TEXT(aMedias;0)
 
  ` 外部 (ORACLE) データベースに操作を行う
 Begin SQL
    SELECT ENAME FROM EMP INTO :aTitles
 End SQL
 
  ` SQL LOGINコマンドで開かれた外部接続を閉じる
 SQL LOGOUT
  ` カレントDSNはローカルデータベースになる
 $Crt_DSN:=Get current data source
 ALERT("The current DSN is "+$Crt_DSN)
Else
 ALERT("ORACLE DSN not installed")
End if

これをテストするには、 "4D SQL Code Samples" データベースのメインウィンドウでConnect to ORACLE ボタンをクリックします。

 
プロパティ 

プロダクト: 4D
テーマ: チュートリアル

 
履歴 

 
ARTICLE USAGE

SQLリファレンス ( 4D v16)