4D v16

ODBC Driverを使用した4D SQLエンジンへの接続

ホーム

 
4D v16
ODBC Driverを使用した4D SQLエンジンへの接続

ODBC Driverを使用した4D SQLエンジンへの接続  


 

 

ODBC Driver for 4Dを経由して、外部アプリケーションから4D SQLエンジンに接続できます。

Note: この設定は例題として使用されます。4Dアプリケーションに直接SQLで接続することができます。詳細についてはSQL LOGINコ マンドの説明を参照してください。

  1. チュートリアル例題データベースのコピーを作成します。
  2. データベースを含むフォルダの名前を"Client" と"Server"にそれぞれ変更します。
  3. "Server"フォルダの例題データベースを起動し、データベース設定のSQL/設定ページで"起 動時にSQLサーバを起動する"チェックボックスにチェックを入れ、アプリケーションの開始時にSQLサーバーが起動されるようにします:
  4. "Server"フォルダのデータベースを再起動し、SQLサーバを有効にします。
  5. 4D ODBC Driver for 4Dをインストールし、ODBCデータソースアドミニストレータに名前が表示されているか確認します:
  6. データソース "Test_ODBC_Driver_v11" を作成します:


    そして "Connection test" ボタンをクリックして、接続をテストします:


  7. "Client"フォルダの例題データベースを起動し、メインウィンドウを開いて、 "Connect to 4D" ボタンをクリックします。このボタンに書かれているコードは以下のとおりです:

 C_TEXT($Crt_DSN;$My_4D_DSN)
 ARRAY TEXT(aDSN;0)
 ARRAY TEXT(aDS_Driver;0)
 ARRAY TEXT(aTitles;0)
 ARRAY TEXT(aDirectors;0)
 ARRAY TEXT(aMedias;0)
 
 REDUCE SELECTION([MOVIES];0)
 
  ` デフォルトでカレントDSNはローカルです。
 $Crt_DSN:=Get current data source
 ALERT("The current DSN is "+$Crt_DSN)
 
  ` ローカルデータベースに対し操作を行う
 Begin SQL
    SELECT Title, Director, Media
    FROM MOVIES
    ORDER BY 1
    INTO :aTitles, :aDirectors, :aMedias;
 End SQL
 
  ` ODBCマネージャーに定義されたUserタイプのデータソースを取得する
 GET DATA SOURCE LIST(User data source;aDSN;aDS_Driver)
 $My_4D_DSN:="Test_ODBC_Driver_v11"
 If(Find in array(aDSN;$My_4D_DSN)>0)
 
  ` ODBC Driver v114Dと他の4D間の接続を確立する
 SQL LOGIN($My_4D_DSN;"Administrator";"";*)
 If(Ok=1)
 
  ` カレントDSNは4Dのデータベース
    $Crt_DSN:=Get current data source
    ALERT("The current DSN is "+$Crt_DSN)
 
    ARRAY TEXT(aTitles;0)
    ARRAY TEXT(aDirectors;0)
    ARRAY TEXT(aMedias;0)
 
  ` 外部 (4D) データベースに対し操作を行う
    Begin SQL
       SELECT Title, Director, Media
       FROM MOVIES
       ORDER BY 1
       INTO :aTitles, :aDirectors, :aMedias;
    End SQL
 
  ` USE EXTERNAL DATABASEコマンドで開かれた外部接続を閉じる
    SQL LOGOUT
  ` カレントDSNはローカルデータベースになる
    $Crt_DSN:=Get current data source
    ALERT("The current DSN is "+$Crt_DSN)
 
 Else
    ALERT("Unable to connect to the external data source")
 End if
Else
 ALERT("ODBC Driver data source not found")
End if

ご覧頂いたとおり、メソッドの最初の部分でローカルデー タベースへのクエリを作成しています。次に、ODBC Driverを経由して他の4Dデータベースに接続し、同じクエリを行っています。結果はもちろん同じはずです。

 
プロパティ 

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

 
履歴 

 
ARTICLE USAGE

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