CData ODBC driver for Sage 300 を使って、PHP アプリケーションからSage 300 にデータ連携。PHP でのODBC ネイティブサポートを活用。
CData ODBC Driver for Sage 300 は、PHP アプリケーションからのSage 300 データへの連携を可能にします。本記事では、Sage 300 データをPHP のビルトインODBC 機能でクエリを実行する手順を説明します。
DSN の設定
Sage 300 に接続するDSN を作成します。
一般的な接続文字列:
User=SAMPLE;Password=password;URL=http://127.0.0.1/Sage300WebApi/v1/-/;Company=SAMINC;
ビルトインのデータソースアドミニストレーターでDSN 設定をします。ドライバーのインストールの最後にアドミニストレーターが開きます。ヘルプの「はじめに」でODBC データソースアドミニストレータでSage 300 に接続するDSN の設定方法を参照してください。
Sage 300 への接続の確立
odbc_connect を呼び出して、Sage 300 への接続を開きます。 odbc_pconnect メソッドでも可能です。コネクションを閉じるには、odbc_close もしくはodbc_close_all を使います。
$conn = odbc_connect("CData ODBC Sage 300 Source","user","password");
コネクションはodbc_connect で開かれ、スクリプトが終わると終了します。odbc_pconnect メソッドで開いたコネクションは、スクリプトが終わっても開いたままです。これにより同じクレデンシャルであれば他のスクリプトでコネクションを共有することが可能です:
$conn = odbc_pconnect("CData ODBC Sage 300 Source","user","password");
...
odbc_close($conn); //persistent connection must be closed explicitly
エレメントの作成
odbc_prepare を使って、Prepared ステートメントおよびパラメータライズドクエリを作成します。
$query = odbc_prepare($conn, "SELECT * FROM OEInvoices WHERE AllowPartialShipments = ?");
クエリの実行
Prepared ステートメントをodbc_execute を使って実行します。
$conn = odbc_connect("CData ODBC Sage 300 Source","user","password");
$query = odbc_prepare($conn, "SELECT * FROM OEInvoices WHERE AllowPartialShipments = ?");
$success = odbc_execute($query, array('Yes'));
Non-Parameterized クエリは、odbc_exec を使います。
$conn = odbc_connect("CData ODBC Sage 300 Source","user","password");
$query = odbc_exec($conn, "SELECT * FROM OEInvoices");
結果の処理
odbc_fetch_array ファンクションの結果セット配列としてアクセスします。
$conn = odbc_connect("CData ODBC Sage 300 data Source","user","password");
$query = odbc_exec($conn, "SELECT * FROM OEInvoices");
while($row = odbc_fetch_array($query)){
echo $row["InvoiceUniquifier"] . "\n";
}
odbc_result_all ファンクションで、結果セットをHTML テーブルとして表示します。
$conn = odbc_connect("CData ODBC Sage 300 data Source","user","password");
$query = odbc_prepare($conn, "SELECT * FROM OEInvoices WHERE AllowPartialShipments = ?");
$success = odbc_execute($query, array('Yes'));
if($success)
odbc_result_all($query);
サンプルクエリのテスト
スタンドアロンのテスト環境をたちあげる簡単な方法はPHP のビルトインテストサーバーを使うことです。手順はこちらです:
PHP の最新版のバイナリのダウンロード。
フォルダにファイルを入れる。
フォルダを開く。
php.ini-development をphp.ini に変更。
ブラウザからテストスクリプトにアクセスするためのコマンドを実行。
php -S localhost:8000 -t C:\path-to-your-scripts -c C:\path-to-php\php.ini
他のサンプルクエリ
サポートされているSQL の詳細は、ヘルプドキュメントを参照してください。上のサンプルは、PHP community documentation for all ODBC functions のSage 300 に特化したものです。