SQL LOGIN

4D - Documentation   French   English   German   Spanish   日本語   4D v11 SQLコマンドテーマリスト   4D v11 SQLインデックス   4D v11 SQL定数テーマリスト   戻る   前   次

version 11.3 (Modified)


SQL LOGIN{(dataEntry; userName; password; *)}

引数説明
dataEntry文字列・外部データベース名、または
・外部データソースのIPアドレス、または
・ODBCマネジャーのデータソース名、または
・""で選択ダイアログボックスの表示
userName文字列データソースに登録されているユーザー名
password文字列データソースに登録されているパスワード
**Begin SQL/End SQLへ適用される
省略した場合、適用しない(ローカルデータベース)、
渡す場合、適用する

説明

SQL LOGINコマンドを使用すると、dataEntry引数で指定されたSQLデータソースへ接続することができます。このコマンドは、アプリケーションで後に実行される以下のSQLクエリの対象を示します:

SQL EXECUTEコマンド経由

Begin SQL / End SQLタグ内に記述されているコード経由 (* 引数が渡された場合)

SQLデータソースは次のいづれかです:

・直接アクセスする外部4D Serverデータベース

・外部ODBCソース

・内部SQLエンジン

dataEntryには次の値のいづれかを渡します: IPアドレス、4Dデータベース公開名、ODBCデータソース名、空の文字列、またはSQL_INTERNAL定数。

・IPアドレス

シンタックス: IP:<IPAddress>{:<TCPPort>}

コマンドは指定されたIPアドレスのコンピュータ上で実行される4D Serverデータベースに直接接続します。対象のコンピュータ上では、SQLサーバが起動していなければなりません。TCPポート番号を渡す場合、SQLサーバの公開ポートとして、対象のデータベースでそのポートが指定されていなければなりません。TCPポートの数値を渡さない場合、デフォルトのポート (19812) が使用されます。アプリケーション環境設定の "SQL/設定" ページで、SQLサーバ用のTCPポート番号を変更できます。

例1と2を参照してください。

・4Dデータベース公開名

シンタックス: 4D:<Publication_Name>

コマンドは、ネットワーク上で指定された名前に対応する公開名の4D Serverのデータベースに直接接続します。データベースのネットワーク上の公開名は、アプリケーション環境設定の"Client-Server/設定" ページに設定されています。

例4を参照してください。

Note: 接続する (4Dデータベースを公開する) 4D SQLサーバのTCPポート番号と、4DアプリケーションのSQLサーバ用のTCPポート番号は一致しなければなりません。

・有効なODBCデータソース名

シンタックス: ODBC:<My_DSN> または <My_DSN>

dataEntry引数に、ODBC Driverマネージャで設定したデータソースの名前を渡します。

Note: 4Dの以前のバージョンとの互換性のため、接頭辞"ODBC:" を省略することも可能ですが、コードの読みやすさの理由から、接頭辞を使用することをお勧めします。

例4を参照して下さい。

・空の文字列

シンタックス: ""

コマンドは接続ダイアログボックスを表示します。接続するデータソースは手動で入力できます。

このダイアログボックスには複数のページがあります。TCP/IPページには次の要素があります。

* ターゲット名: このメニューは2つのリストから構成されています。

- ダイレクト接続で最近開いたデータベースのリスト。このリストを更新するメカニズムは、4Dアプリケーションと同じです。ただし4DLinkファイルを格納するフォルダは"Favorites v11"ではなく"Favorites SQL v11" という名前です。

- SQLサーバが開始されていて、そのSQL公開ポート番号が一致する4D Serverアプリケーションのリスト。このリストは、dataEntry引数を渡さずにSQL LOGINコマンドを新たに呼び出す度に更新されます。データベースの名前の前に"^" 記号が付いている場合、安全なSSLモードを通して接続が行われたことを意味します。

* ネットワークアドレス: このエリアはターゲット名で選択したデータベースのIPアドレスと、必要ならTCPポート番号を表示します。このエリアにIPアドレスを入力して接続ボタンを押して、対象の4D Serverデータベースに続することもできます。IPアドレスの後ろにコロン (:)を置いて、TCPポート番号を指定することも可能です。アドレスの後ろにコロン(:) を付けてポートの数値を入力します。例: 192.168.93.105:19855

* ユーザ名パスワード: これらのエリアを使用して、接続認証情報を入力します。

* ユーザDSNシステムDSN ページは、コンピュータのODBC Driverマネージャで指定されているシステムおよびユーザODBCデータソースのリストそれぞれ表示します。これらのページでデータソースを選択したり、認証情報を入力したりして、外部ODBCデータソースに接続できます。

接続が確立されると、OKシステム変数が1に設定されます。そうでなければ0に設定され、エラーが生成されます。ON ERR CALLコマンドでインストールされているエラー処理メソッドでこのエラーをとらえることができます。

・SQL_INTERNAL定数

シンタックス: SQL_INTERNAL

コマンドは、続くSQLクエリをデータベース内部のSQLエンジンに転送します。

userNameには、外部データソースへの接続が許可されたユーザの名前を渡します。例えば、OracleRでは、ユーザ名は“Scott”かもしれません。

passwordには、外部データソースへの接続が許可されたユーザのパスワードを渡します。例えば、 OracleRでは、パスワードは“tiger”かもしれません。

Note: 直接接続でuserNamepassword引数に空の文字列を渡す場合、4Dのパスワードシステムが対象データベースで有効になっていない場合のみ、接続を受け入れます。その他の場合接続は拒否されます。

オプションの * 引数を使用して、Begin SQL/End SQL タグ内で実行されるSQLコードのターゲットを変更できます。この引数を渡さない場合、Begin SQL/End SQLタグ内に設定されているコードは、SQL LOGIN コマンドで指定されている設定を無視して、4Dの内部SQLエンジンに送られます。この引数を渡すと、Begin SQL/End SQLタグ内で実行されるSQLコードは、dataEntry 引数で指定されているソースへと送られます。

接続を終了してメモリを解放するには、SQL LOGOUTコマンドを実行するだけです。続くすべてのSQLクエリは、データベースの内部SQLエンジンへと送られます。

現在の接続を明示的に終了しないでSQL LOGINを再び呼び出すと、接続は自動的に終了します。

これらの引数はオプションです。引数をまったく渡さない場合、コマンドはODBCログインダイアログボックスを開き、外部データソースを選択することができます。

このコマンドのスコープはプロセスです。つまり、異なる2つの接続を行いたい場合、2つのプロセスを作成してそれぞれのプロセス内で各接続を実行しなくてはなりません。

例題

1. この文は、ODBCマネージャダイアログボックスを表示します:

   SQL LOGIN 

2. ODBC プロトコル経由で外部データソース"MyOracle" と接続。SQL EXECUTE コマンドを用いて実行されたSQLクエリとBegin SQL

/
End SQL タグ内に収められているクエリは、この接続に送られます。


   SQL LOGIN("ODBC:MyOracle";"Scott";"tiger";*)

3. 4Dの内部SQLカーネルに接続します:

   SQL LOGIN(SQL_INTERNAL;$user;$password)

4. デフォルトのTCPポートで接続を受け付ける、IPアドレス192.168.45.34のコンピュータで実行される4DのServer v11 SQL アプリケーションとの直接接続を開きます。SQL EXECUTE コマンド経由で実行されるSQLクエリはこの接続に送られます。Begin SQL/End SQLタグ内に収められているクエリこの接続に送られません。


   SQL LOGIN("IP:192.168.45.34";"John";"azerty")

5.
TCPポート20150で接続を待ち受ける、IPアドレス192.168.45.34のコンピュータで実行される4DのServer v11 SQL アプリケーションとの直接接続を開きます。SQL EXECUTE コマンド経由で実行されるSQLクエリとBegin SQL/End SQLタグ内に収められているクエリは、この接続に送られます。


   SQL LOGIN("IP:192.168.45.34:20150";"John";"azerty";*)

6. 
ローカルのネットワーク上で公開名"Accounts_DB"のデータベースを公開する4DのServer v11 SQLアプリケーションとの直接接続を開きます。両方のデータベースのSQLサーバ用のTCPポート (環境設定のSQL/設定ページで設定) は一致していなければなりません (デフォルトで19812)。SQL EXECUTE コマンド 経由で実行されるSQLクエリはこの接続に送られます。Begin SQL/End SQLタグ内に収められているクエリはこの接続に送られません。


   SQL LOGIN ("4D:Accounts_DB";"John";"azerty")

7.
SQL LOGINコマンドによる可能な接続を以下の例で表します。


   ARRAYS TEXT (30;aNames)
   ARRAYS LONGINT(aAges;0)
   SQL LOGIN("ODBC:MyORACLE";"Marc";"azerty")
   If(OK=1)
         `次のクエリはORACLEの外部データベースへ送られます。
      SQL EXECUTE("SELECT Name, Age FROM PERSONS";aNames; aAges)
         `次のクエリはローカルの4Dデータベースへ送られます。
      Begin SQL
         SELECT Name, Age 
         FROM PERSONS
         INTO :aNames, :aAges;
      End SQL
         `次のSQL LOGINコマンドを使用し現在の外部ORACLEデータベースとの接続を終了します。
         `そし新たに外部MySQLデータベースと接続します。
      SQL LOGIN ("ODBC:MySQL";"Jean";"qwerty";*)
      If(OK=1)
            `次のクエリは外部MySQLデータベースへ送られます。
         SQL EXECUTE("SELECT Name, Age FROM PERSONS";aNames; aAges)
            `次のクエリもまた外部MySQLデータベースへ送られます。
         Begin SQL
            SELECT Name, Age 
            FROM PERSONS
            INTO :aNames, :aAges;
         End SQL
         SQL LOGOUT
            `次のクエリは4Dのローカルのデータベースへ送られます。
         Begin SQL
            SELECT Name, Age 
            FROM PERSONS
            INTO :aNames, :aAges;
         End SQL
      End if
   End if

参照

Begin SQL, End SQL, SQL LOGOUT.

システム変数またはセット

接続に成功するとシステム変数OKには1が代入され、それ以外の場合は0が代入されます。


4D - Documentation   French   English   German   Spanish   日本語   4D v11 SQLコマンドテーマリスト   4D v11 SQLインデックス   4D v11 SQL定数テーマリスト   戻る   前   次