PSQL v12 ODBC Guide Using ODBC with PSQL 免責事項 商標 Actian Corporation は、 本 ソ フ ト ウ ェ アお よ び ド キ ュ メ ン ト の使用を、 利用者ま たはそ の会社に対 し て 「現状の ま ま」 で、かつ同梱の使用許諾契約書に記載の契約条件に よ っ てのみ許諾す る も のです。 Actian Corporation は、 いかな る 場合に も 本 ソ フ ト ウ ェ アお よ び本マニ ュ アルに記載 さ れた内容に関す る その他の一切の保証を、 明示的に も 黙示 的に も 行い ません。 Actian Corporation は、 市場性、 権利、 特定の目的に対する 適合性、 あ る いは一連の取引業務や職業的な使用に関す る 問題な ど に対 し 、 一切の保証を行わ ない こ と を明示する と と も に、利用者お よ びその会社が こ れに同意 し た も の と し ます。 Btrieve、 Client/Server in a Box お よ び Pervasive は Actian Corporation の登録商標です。 Built on Pervasive Software、 DataExchange、 MicroKernel Database Engine、 MicroKernel Database Architecture、 Pervasive.SQL、 Pervasive PSQL、 Solution Network、 Ultralight、 ZDBA は Actian Corporation の商標です。 Apple、 Macintosh、 Mac、 お よ び OS X は、 Apple Inc の登録商標です。 Microsoft、 MS-DOS、 Windows、 Windows 95、 Windows 98、 Windows NT、 Windows Me、 Windows 2000、 Windows 2003、 Windows 2008、 Windows 7、 Windows 8、 Windows 10、 Windows Server 2003、 Windows Server 2008、 Windows Server 2012、 Windows XP、 Win32、 Win32s、 お よ び Visual Basic は、 Microsoft Corporation の登録商標です。 NetWare お よ び Novell は Novell, Inc の登録商標です。 NetWare Loadable Module、 NLM、 Novell DOS、 Transaction Tracking System お よ び TTS は Novell, Inc の商標です。 Oracle、 Java、 お よ び Oracle ま たは Java を含むすべての商標や ロ ゴは、 Oracle Corporation の商標 ま たは登録商標です。 すべての会社名お よ び製品名は各社の商標ま たは登録商標です。 © Copyright 2016 Actian Corporation.All rights reserved. こ のマニ ュ アルの全文、 一部に関わ り な く 複製、 複写、 配布をす る こ と は、 前 も っ て発行者の書面に よ る 同意がない限 り 禁止 し ます。 本製品には、 Powerdog Industries に よ り 開発 さ れた ソ フ ト ウ ェ アが含ま れてい ます。 © Copyright 1994 Powerdog Industries.All rights reserved. 本製品には、 KeyWorks Software に よ り 開 発 さ れた ソ フ ト ウ ェ アが含ま れてい ます。 © Copyright 2002 KeyWorks Software.All rights reserved. 本製品には、DUNDAS SOFTWARE に よ り 開発 さ れた ソ フ ト ウ ェ アが含ま れてい ます。 © Copyright 1997-2000 DUNDAS SOFTWARE LTD. All rights reserved. 本製品には、Apache Software Foundation Foundation(http://www.apache.org/)に よ り 開発 さ れた ソ フ ト ウ ェ アが含ま れてい ます。 本製品では フ リ ー ソ フ ト ウ ェ ア の unixODBC Driver Manager を 使用 し て い ま す。 こ れは Peter Harvey ([email protected]) に よ っ て作成 さ れ、 Nick Gorham ([email protected]) に よ り 変 更お よ び拡 張 さ れ た も の に Actian Corporation が 一 部 修正 を 加 え た も の で す。 Actian Corporation は、 unixODBC Driver Manager プ ロ ジ ェ ク ト の LGPL 使用許諾契約書に従っ て、 こ の プ ロ ジ ェ ク ト の現在の保守管理者にその コ ー ド 変更を提供 し ます。 unixODBC Driver Manager の Web ページは www.unixodbc.org にあ り ます。 こ のプ ロ ジ ェ ク ト に関す る 詳細については、 現在 の保守管理者であ る Nick Gorham ([email protected]) にお問い合せ く だ さ い。 GNU Lesser General Public License (LGPL) は本製品の配布 メ デ ィ アに含ま れてい ます。 LGPL は www.fsf.org/licensing/licenses/lgpl.html で も 見 る こ と がで き ます。 ODBC Guide 2016 年 7 月 目次 こ のマニ ュ アルについて . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v こ のマニ ュ アルの読者 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vi 表記上の規則 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii 詳細 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii 1 ODBC 仕様のサポー ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 PSQL の Open Database Connectivity (ODBC) 仕様のサポー ト の概要 ODBC 仕様のサポー ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 ODBC イ ン タ ーフ ェ イ ス サポー ト の例外 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 ODBC API サポー ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 ODBC API サポー ト の例外 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 ODBC 属性サポー ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 接続属性サポー ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ス テー ト メ ン ト 属性のサポー ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 7 ODBC 記述子フ ィ ール ド のサポー ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 記述子フ ィ ール ド お よ びビ ッ ト 数値 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SQLSetStmtOption の各種オプシ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 8 PSQL ODBC リ フ ァ レ ン ス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 接続文字列、 メ タ デー タ のバージ ョ ン、 制限、 お よ び SQL 文法についての リ フ ァ レ ン ス情報 デー タ ソ ース名接続文字列キー ワー ド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 開いたテーブルを閉 じ る . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 SQL 文法のサポー ト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 SQL ス テー ト メ ン ト 内のデ リ ミ タ ー付 き 識別子 . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 使用で き る デー タ 型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 無限の表現 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 ト ラ ンザ ク シ ョ ン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3 DSN のセ ッ ト ア ッ プおよび接続文字列 . . . . . . . . . . . . . . . . . . . . . . 19 PSQL におけ る DSN と ODBC ア ド ミ ニ ス ト レー タ ーの使用 ODBC デー タ ベース ア ク セ ス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 PSQL ODBC ド ラ イ バー名 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 DSN 接続 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 DSN を使用 し ない接続 (DSN レ ス接続) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 PSQL DSN セ ッ ト ア ッ プ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 ODBC ア ド ミ ニ ス ト レー タ ー デー タ ソ ース名 . . . . . . . . 説明 . . . . . . . . . . . . . . . サーバー名 /IP . . . . . . . . . 転送の ヒ ン ト . . . . . . . . . デー タ ベース名 . . . . . . . . デー タ ベース設定の詳細 . . . エン ジ ン DSN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 22 22 22 22 23 23 23 iii 目次 詳細な接続属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 PSQL エン ジ ン DSN セ ッ ト ア ッ プ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 デー タ ソ ース名 . . . . . . . . . . . 説明 . . . . . . . . . . . . . . . . . . デー タ ベース名 . . . . . . . . . . . デー タ ベース設定の詳細 . . . . . . エン ジ ン DSN 用の詳細な接続属性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 28 28 28 29 DSN セ ッ ト ア ッ プ を介 し たデー タ ベース の作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 ODBC 接続文字列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 ODBC ド ラ イ バー パ ラ メ ー タ ー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 iv こ のマニ ュ アルについて こ のマニ ュ アルでは、 PSQL が提供す る ODBC 仕様のサポー ト について説明 し ます。 v こ のマニ ュ アルの読者 こ のマニ ュ アルは、 ODBC アーキ テ ク チ ャ や ODBC ド ラ イ バー コ ン ポーネ ン ト の基本概念について理解がで き てい る こ と と 、 Microsoft ODBC Software Development Kit を使用で き る 環境にあ る こ と を前提 と し てい ます。 ま た、 最新のデー タ ベース原理 と その用語、 C 言語、 お よ び コ ンパ イ ラ や リ ン カーな ど の開発環境についての知 識 と 経験があ る こ と を前提に し てい ます。 vi 表記上の規則 特段の記述がない限 り 、 コ マ ン ド 構文、 コ ー ド 、 お よ びコ ー ド 例では、 以下の表記が使用 さ れます。 大文字小文字の 区別 通常、 コ マ ン ド と 予約語は、 大文字で表記 さ れ ま す。 本書で別途記述がない限 り 、 こ れ ら の項目は 大文字、 小文字、 あ る いはその両方を使っ て入力で き ます。 た と えば、 MYPROG、 myprog、 ま たは MYprog と 入力す る こ と がで き ます。 [ ] 省略可能な情報には、 [log_name] の よ う に、 角か っ こ が使用 さ れます。 角かっ こ で囲まれていない 情報は必ず指定す る 必要があ り ます。 | 縦棒は、 [file name | @file name] の よ う に、 入力す る 情報の選択肢を表 し ます。 < > <> は、 /D=<5|6|7> の よ う に、 必須項目に対す る 選択肢を表 し ます。 変数 file name の よ う に斜体で表 さ れてい る 語は、 適切な値に置 き 換え る 必要のあ る 変数です。 ... [parameter...] の よ う に、 情報の後に省略記号が続 く 場合は、 その情報を繰 り 返 し 使用で き ます。 ::= 記号 ::= は、 あ る 項目が別の項目用語で定義 さ れてい る こ と を意味 し ま す。 た と えば、 a::=b は、 項 目 a が b で定義 さ れてい る こ と を意味 し ます。 * ア ス タ リ ス ク は、 同一の接頭辞を持つ一連の API を示すワ イ ル ド カー ド 記号 と し て使用 さ れます。 メ モ 特段の記述がない限 り 、本書におけ る PSQL 製品へのすべての リ フ ァ レ ン ス は、現行バージ ョ ンについ て述べてい ます。 vii 詳細 ODBC 仕様の詳細については、 Microsoft ODBC ド キ ュ メ ン ト を参照 し て く だ さ い。 viii ODBC 仕様のサポー ト 1 PSQL の Open Database Connectivity (ODBC) 仕様のサポー ト の概要 こ の章では PSQL の ODBC 仕様のサポー ト について説明 し ます。 「ODBC 仕様のサポー ト 」 「ODBC API サポー ト 」 「ODBC 属性サポー ト 」 「ODBC 記述子フ ィ ール ド のサポー ト 」 1 ODBC 仕様のサポー ト ODBC 仕様のサポー ト ODBC (Open Database Connectivity) と は、 Microsoft に よ っ て開発 さ れた、 デー タ ベース マネージ メ ン ト シ ス テ ム (DBMS) にア ク セ ス す る ための標準 API です。 こ の標準は、 長年にわた っ て進化 し 続け て き ま し た。 PSQL リ レーシ ョ ナル イ ン タ ーフ ェ イ ス は、 コ ア、 レベル 1、 お よ びレベル 2 の イ ン タ ーフ ェ イ ス サポー ト レベルに対 す る ODBC v3.51 仕様をサポー ト し てい ます (レベル 3 はサポー ト 対象外です)。 ODBC イ ン タ ー フ ェ イ ス サポー ト の例外 コ ア レ ベル SQL_BEST_ROWID リ レーシ ョ ナル イ ン タ ーフ ェ イ ス では、 テーブル内の行を識別す る 最適な列セ ッ ト と し て固有の イ ンデ ッ ク ス が 使用 さ れます。 IDENTITY 列のあ る テーブルに新 し い列を挿入 し た場合、 リ レーシ ョ ナル イ ン タ ーフ ェ イ ス は IDENTITY 列に割 り 当て ら れた値を返 し ません。 IDENTITY 列の値は @@IDENTITY 変数を使用す る こ と に よ っ て判断で き ま す。 『SQL Engine Reference』 の 「@@IDENTITY」 を参照 し て く だ さ い。 レ ベル 2 以下はサポー ト 対象外です。 SQL_ATTR_LOGIN_TIMEOUT SQL_BEST_ROWID (上記の説明を参照) SQL_ROWVER 2 ODBC API サポー ト ODBC API サポー ト 次の表は、 リ レーシ ョ ナル イ ン タ ーフ ェ イ ス に よ り サポー ト さ れ る ODBC API 関数、 お よ び ODBC サポー ト レ ベルの一覧を示 し ます。 ODBC API の詳細については、 Microsoft の ODBC ド キ ュ メ ン ト を参照 し て く だ さ い。 表 1 PSQL がサポー ト し ている ODBC API 関数 ODBC 関数 ODBC サポー ト レ ベル SQLAllocHandle コア SQLBindCol コア SQLBindParameter コア SQLBrowseConnect レベル 1 SQLBulkOperations レベル 1 SQLCancel コア SQLCloseCursor コア SQLColAttribute コア SQLColumnPrivileges レベル 2 SQLColumns コア SQLConnect コア SQLCopyDesc コア SQLDataSources コア SQLDescribeCol コア SQLDescribeParam レベル 2 SQLDisconnect コア SQLDriverConnect コア SQLDrivers コア SQLEndTran コア SQLExecDirect コア SQLExecute コア SQLExtendedFetch コア SQLFetch コア SQLFetchScroll コア SQLForeignKeys レベル 2 SQLFreeHandle コア SQLFreeStmt コア SQLGetConnectAttr コア 3 ODBC 仕様のサポー ト 表 1 PSQL がサポー ト し ている ODBC API 関数 4 ODBC 関数 ODBC サポー ト レ ベル SQLGetCursorName コア SQLGetData コア SQLGetDescField コア SQLGetDescRec コア SQLGetDiagField コア SQLGetDiagRec コア SQLGetEnvAttr コア SQLGetFunctions コア SQLGetInfo コア SQLGetStmtAttr コア SQLGetTypeInfo コア SQLMoreResults レベル 1 SQLNativeSql コア SQLNumParams コア SQLNumResultCols コア SQLParamData コア SQLPrepare コア SQLPrimaryKeys レベル 1 SQLProcedureColumns レベル 1 SQLProcedures レベル 1 SQLPutData コア SQLRowCount コア SQLSetConnectAttr コア SQLSetCursorName コア SQLSetDescField コア SQLSetDescRec コア SQLSetEnvAttr コア SQLSetPos レベル 1 SQLSetStmtAttr コア SQLStatistics コア SQLTablePrivileges レベル 2 SQLTables コア ODBC API サポー ト ODBC API サポー ト の例外 次のセ ク シ ョ ンには、 ODBC API サポー ト の例外に関す る 詳細が記述 さ れてい ます。 SQLGetData アプ リ ケーシ ョ ン で SQLGetData を呼び出 し て SQL_C_NUMERIC 構造体にデー タ を返 し た場合、 ODBC 標準で は、 SQL_DESC_SCALE フ ィ ール ド はゼ ロ に設定 さ れ、 SQL_DESC_PRECISION フ ィ ール ド には ド ラ イ バー定義 の精度が使用 さ れます。 PSQL は、 メ タ デー タ に定義 さ れてい る 小数位お よ び ド ラ イ バー定義の精度 (桁数) の値を使用 し ます。 次の例 を考え て見ま し ょ う 。 こ の例では、 小数位は 2 に設定 さ れます。 CREATE TABLE testnum (col1 NUMERIC(10,2)) INSERT INTO testnum VALUES (10.34) SELECT * FROM testnum SELECT ス テー ト メ ン ト は 10.00 ではな く 10.34 を返 し ます。 SQLGetTypeInfo SQLGetTypeInfo を使用す る と 、 リ レ ーシ ョ ナル イ ン タ ーフ ェ イ ス に よ っ て指定 さ れた ネ イ テ ィ ブ デー タ 型名 ( タ イ プ 名) の リ ス ト が生成 さ れ ま す。 た と えば、 SQL_CHAR が CHARACTER に割 り 当て ら れ ま す。 「CREATE TABLE」 ス テー ト メ ン ト ま たは 「ALTER TABLE」 ス テー ト メ ン ト 内の列のデー タ 型名、 あ る いはプ ロ シージ ャ の パ ラ メ ー タ ーや、 プ ロ シージ ャ お よ び ト リ ガーで宣言 さ れた変数のデー タ 型名には、 こ の関数か ら 戻 さ れ る 名前 を使用 し て く だ さ い。 サポー ト さ れてい る ODBC デー タ 型の一覧については、 「使用で き る デー タ 型」 を参照 し て く だ さ い。 SQLGetInfo リ レ ーシ ョ ナル イ ン タ ー フ ェ イ ス は SQL_DRIVER_VER と SQL_DBMS_VER で同一の値 を返 し ま す。 こ のバー ジ ョ ン値は次の形式で返 さ れます。 aa.bb.cccc ddd こ の値は、 次の表で説明 さ れてい る よ う に 4 つの構成要素 と し て解釈で き ます。 要素 値 説明 aa メ ジ ャ ー バージ ョ ン PSQL デー タ ベース エ ン ジ ンの メ ジ ャ ー バージ ョ ン。 bb マ イ ナー バージ ョ ン PSQL デー タ ベース エ ン ジ ンのマ イ ナー バージ ョ ン。 一般に、 サービ ス パ ッ ク で更新 さ れます。 cccc ビル ド 番号 ビル ド の詳細。 Actian Corporation が リ リ ース版を生成 し た時点の ビル ド 回数を示す こ と に よ っ て、 その リ リ ース を特定 し ます。 ddd ポ イ ン ト ビル ド ビル ド のマ イ ナー ア ッ プデー ト 。 ビル ド 番号 と ポ イ ン ト ビル ド に よ っ て、 特定の時点で 作成 さ れた一意な製品 リ リ ース を識別で き ます。 次の表では、 SQLGetInfo で一般的に返 さ れ る その他の値について ま と めてい ます。 値は例 と し てのみ挙げて あ り ます。 項目 値の例 SQL_DRIVER_NAME W3ODBCCI.DLL SQL_DRIVER_VER 10.00.0147 012 SQL_DRIVER_ODBC_VER 03.51 5 ODBC 仕様のサポー ト 項目 値の例 SQL_DBMS_NAME Pervasive.SQL SQL_DBMS_VER 10.00.0147 012 SQL_ODBC_VER 03.52.0000 SQL_ODBC_API_CONFORMANCE SQL_OAC_LEVEL2 SQL_ODBC_INTERFACE_CONFORMANCE SQL_OIC_LEVEL2 SQLSpecialColumns リ レーシ ョ ナル イ ン タ ーフ ェ イ ス では、 テーブル内の行を一意に識別す る 最適な列セ ッ ト と し て固有の イ ンデ ッ ク ス が使用 さ れます。 新 し い行が挿入 さ れた と き 、 リ レーシ ョ ナル イ ン タ ーフ ェ イ ス は IDENTITY 列の値は返 し ません。 IDENTITY 列の値は @@IDENTITY 変数を使用す る こ と に よ っ て判断で き ます。 『SQL Engine Reference』 の 「@@IDENTITY」 を参照 し て く だ さ い。 6 ODBC 属性サポー ト ODBC 属性サポー ト リ レーシ ョ ナル イ ン タ ーフ ェ イ ス は ODBC v3.51 の属性サポー ト を提供 し てい ますが、 次に挙げ る 例外があ り ま す。 接続属性サポー ト 次の表は、 ODBC 接続属性サポー ト の例外を示 し ます。 表 2 ODBC 接続属性サポー ト の例外 fOption 解説 SQL_ATTR_AUTO_IPD デフ ォ ル ト 値は SQL_TRUE です。 Pervasive ODBC ド ラ イ バーは、 こ の属性値 を SQL_FALSE に設定す る こ と を許可 し てい ません。 SQL_ATTR_CONNECTION_TIMEOUT デフ ォ ル ト 値は 0 です。 それ以外の値はサポー ト さ れてい ません。 SQL_ATTR_METADATA_ID デフ ォ ル ト 値は SQL_FALSE です。 Pervasive ODBC ド ラ イ バーは、 こ の属性値 を SQL_TRUE に設定す る こ と を許可 し てい ません。 ス テー ト メ ン ト 属性のサポー ト 次の表は、 ODBC ス テー ト メ ン ト 属性サポー ト の例外を示 し ます。 表 3 ODBC ス テー ト メ ン ト 属性サポー ト の例外 fOption (数値) 解説 SQL_ATTR_ENABLE_AUTO_IPD(15) デフ ォ ル ト 値は SQL_TRUE です。 Pervasive ODBC ド ラ イ バーは、 こ の属性値 を SQL_FALSE に設定す る こ と を許可 し てい ません。 SQL_ATTR_METADATA_ID(10014) デフ ォ ル ト 値は SQL_FALSE です。 Pervasive ODBC ド ラ イ バーは、 こ の属性値 を SQL_TRUE に設定す る こ と を許可 し てい ません。 SQL_ATTR_PARAM_BIND_TYPE(18) SQL_PARAM_BIND_BY_COLUMN のみサポー ト さ れます。 SQL_ATTR_QUERY_TIMEOUT(0) SQLSetStmtAttr お よ び SQLSetConnectAttr を 介 し て サ ポ ー ト さ れ ま す。 SQLExecDirect、 SQLExecute、 SQLFetch お よ び SQLExtendedFetch にのみ適用で き ます。 DDL ス テー ト メ ン ト に適用 し てはいけ ません。 7 ODBC 仕様のサポー ト ODBC 記述子フ ィ ール ド のサポー ト リ レーシ ョ ナル イ ン タ ーフ ェ イ ス は ODBC v 3.51 記述子フ ィ ール ド サポー ト を提供 し てい ますが、 次の例外が あ り ます。 表 4 ODBC 記述子サポー ト の例外 fOption 解説 SQL_DESC_BIND_TYPE アプ リ ケーシ ョ ン パ ラ メ ー タ ー記述子 (APD) では、 SQL_BIND_BY_COLUMN のみサポー ト さ れます。 SQL_DESC_ROWVER 「ODBC イ ン タ ーフ ェ イ ス サポー ト の例外」 を参照 し て く だ さ い。 記述子フ ィ ール ド およびビ ッ ト 数値 一部の記述子フ ィ ール ド は ODBC の さ ま ざ ま な SQLSet お よ び SQLGet 関数を介 し て設定で き ますが、 こ れ ら の 関数が 64 ビ ッ ト 値対応に変更 さ れてい る 一方、 それ以外の関数は ま だ 32 ビ ッ ト 値対応であ る こ と に注意 し て く だ さ い。 64 ビ ッ ト ODBC ド ラ イ バーを使用 し てい る 場合、 こ の よ う な フ ィ ール ド を設定お よ び取得す る 際には、 適切なサ イ ズの変数を使用す る よ う に し て く だ さ い。 詳細については、 Microsoft の ODBC ド キ ュ メ ン ト を参照 し て く だ さ い。 説明の要点は、 SQL_ROWSET_SIZE は SQLGetStmtOption と SQLGetStmtAttr の両方でサポー ト さ れ る と い う こ と です。 64 ビ ッ ト ODBC ド ラ イ バーを使用 し 、 SQLGetStmtOption ま たは SQLGetStmtAttr を呼び出 し た場合、 属性 パ ラ メ ー タ ーが SQL_ROWSET_SIZE に設定 さ れてい る 場合には、 *ValuePtr に 64 ビ ッ ト 値が返 さ れます。 SQLSetStmtOption の各種オプ シ ョ ン こ のセ ク シ ョ ン では、 以下の SQLSetStmtOption の各種オプシ ョ ン に対す る PSQL のサポー ト について説明 し ま す。 SQL_BIND_TYPE SQL_CONCURRENCY SQL_CURSOR_TYPE SQL_RETRIEVE_DATA SQL_ROWSET_SIZE SQL_USE_BOOKMARKS 次の表は、 各オプシ ョ ンで有効な設定値を示 し ます。 表 5 ア ク セス方法ご と にサポー ト さ れるバイ ン ド 、 並行、 および カ ー ソルの タ イ プ SQL_BIND_TYPE 8 ODBC カ ー ソル ラ イ ブ ラ リ 現在の PSQL ODBC ド ラ イバー SQL_BIND_BY_COLUMN ま たは行方向のバ イ ン ド を示す長 さ SQL_BIND_BY_COLUMN ま たは行方向のバ イ ン ド を示す長 さ ODBC 記述子フ ィ ール ド のサポー ト 表 5 ア ク セス方法ご と にサポー ト さ れるバイ ン ド 、 並行、 および カ ー ソルの タ イ プ SQL_CONCURRENCY ODBC カ ー ソル ラ イ ブ ラ リ 現在の PSQL ODBC ド ラ イバー SQL_CONCUR_READ_ONLY ま たは SQL_CONCUR_ VALUES SQL_CONCUR_READ_ONLY、 SQL_CONCUR_ROWVER ま たは SQL_CONCUR_LOCK (SQL_CONCUR_ROWVER の場合、 ラ イ ブ ラ リ は SQL_CONCUR_VALUES を代用 し 、 SQL_SUCCESS_WITH_INFO を返 し て、 SQLSTATE に 01S02 を設定す る ) (SQL_CONCUR_VALUES の場合、 ド ラ イ バーは自動的に SQL_CONCUR_ROWVER を 代用す る ) (SQL_CONCUR_LOCK の場合、 ラ イ ブ ラ リ は SQLSTATE = S1C00 の SQL_ERROR を返す) SQL_CURSOR_TYPE SQL_CURSOR_FORWARD_ONLY ま たは SQL_CURSOR_STATIC (SQL_CURSOR_KEYSET_DRIVEN お よ び SQL_CURSOR_DYNAMIC の場合、 ラ イ ブ ラ リ は SQL_CURSOR_STATIC を代用 し 、 SQL_SUCCESS_WITH_INFO を返 し て、 SQLSTATE に 01S02 を設定す る ) SQL_CURSOR_FORWARD_ONLY ま たは SQL_CURSOR_STATIC ま たは SQL_CURSOR_DYNAMIC (SQL_CURSOR_KEYSET_DRIVEN の場合、 ラ イ ブ ラ リ は SQL_CURSOR_STATIC を代用 し 、 SQL_SUCCESS_WITH_INFO を返 し て、 SQLSTATE に 01S02 を設定す る ) 表 6 ア ク セス方法ご と にサポー ト さ れる行セ ッ ト のサイ ズお よびブ ッ ク マー ク SQL_RETRIEVE_DATA ODBC カ ー ソル ラ イ ブ ラ リ 現在の PSQL ODBC ド ラ イバー SQL_RD_ON SQL_RD_ON ま たは SQL_RD_OFF (SQL_RD_OFF の場合、 ラ イ ブ ラ リ は SQLSTATE = S1C00 の SQL_ERROR を返す) SQL_ROWSET_SIZE 行セ ッ ト の行数を示す値。 こ れは最大行セ ッ ト サ イ ズ を限度 と し ます。 行セ ッ ト の行数を示す値。 こ れは最大行セ ッ ト サ イ ズ を限度 と し ます。 SQL_USE_BOOKMARKS SQL_UB_ON ま たは SQL_UB_OFF SQL_UB_ON ま たは SQL_UB_OFF 9 ODBC 仕様のサポー ト 10 PSQL ODBC リ フ ァ レ ン ス 2 接続文字列、 メ タ デー タ のバージ ョ ン、 制限、 お よ び SQL 文法についての リ フ ァ レ ン ス情報 こ の章では、 リ レーシ ョ ナル イ ン タ ーフ ェ イ スお よ び ODBC について説明 し ます。 「デー タ ソ ース名接続文字列キー ワー ド 」 「開いたテーブルを閉 じ る 」 「SQL 文法のサポー ト 」 「使用で き る デー タ 型」 「無限の表現」 11 PSQL ODBC リ フ ァ レ ン ス デー タ ソ ース名接続文字列キーワー ド DSN への接続に使用 さ れ る 接続文字列には、 ド ラ イ バーの定義済みキー ワ ー ド を い く つで も 含む こ と がで き ま す。 こ れ ら のキー ワー ド を使用す る こ と に よ り 、 ド ラ イ バーはデー タ ソ ースへ接続す る のに十分な情報を得 る こ と がで き ます。 ド ラ イ バーは、 デー タ ソ ース と の接続に必要な キーワー ド を定義 し ます。 PSQL の接続文字列お よ びキーワ ー ド の完全な説明については、 「ODBC 接続文字列」 を参照 し て く だ さ い。 開いたテーブルを閉 じ る SQLFreeStmt に SQL_CLOSE オプシ ョ ン を指定 し て呼び出す と 、 SQLSTATE は変更 さ れますが、 hStmt が使用 し て い る 開 い た テ ー ブ ル は 閉 じ ま せ ん。 hStmt が 現在使用 し て い る テ ー ブ ル を 閉 じ る に は、 SQLFreeStmt に SQL_DROP オプシ ョ ン を指定 し て呼び出す必要があ り ます。 次の例では、 Emp と Dept のテーブルは開いた ま ま にな り ます。 SQLPrepare(hStmt, "SELECT * FROM Emp, Dept", SQL_NTS) SQLExecute(hStmt) SQLFetch until SQL_No_Data_Found SQLFreeStmt(hStmt, SQL_CLOSE) その次に SQLPrepare が hStmt で呼び出 さ れた と き 、 前の ス テー ト メ ン ト で使用 し た テーブルが閉 じ ら れ ま す。 た と えば、 次の呼び出 し を実行す る と 、 Emp と Dept の両方のテーブルは PSQL に よ っ て閉 じ ら れます。 SQLPrepare(hStmt, "SELECT * FROM Customer", SQL_NTS) その後、 次の呼び出 し に よ っ て Customer テーブルを閉 じ ます。 SQLFreeStmt(hStmt, SQL_DROP) 12 SQL 文法のサポー ト SQL 文法のサポー ト ODBC v 2.5 仕様は、 最小、 コ ア、 拡張の 3 つの SQL 文法レベルを提供 し ます。 レベルが高 く な る ほ ど、 よ り 完 全なデー タ 定義の実装 と デー タ 操作言語のサポー ト が提供 さ れます。 リ レーシ ョ ナル イ ン タ ーフ ェ イ ス では、 最小 SQL 文法に加え、 多数の コ アお よ び拡張の ス テー ト メ ン ト 文法を 完全サポー ト し てい ます。 リ レーシ ョ ナル イ ン タ ーフ ェ イ ス がサポー ト し てい る SQL 文法は、 次の表に要約 さ れてい ます。 ス テー ト メ ン ト 文法は、 『SQL Engine Reference』 に記載 さ れてい ます。 表 7 SQL 文法のサポー ト SQL ス テー ト メ ン ト 文法 最小 コア 拡張 「ALTER TABLE」 ○ 「CREATE GROUP」 ○ ○ 「CREATE INDEX」 「CREATE PROCEDURE」 ○ 「CREATE TABLE」 ○ 「CREATE TRIGGER」 ○ ○ 「CREATE VIEW」 「DELETE (位置付け)」 ○ DELETE (検索済み) ○ ○ 「DROP GROUP」 ○ 「DROP INDEX」 ○ 「DROP PROCEDURE」 ○ 「DROP TABLE」 ○ 「DROP TRIGGER」 「DROP VIEW」 ○ 「GRANT」 ○ ○ 「INSERT」 ○ 「JOIN」 「LEFT OUTER」 (SELECT) ○ 「REVOKE」 「SELECT (INTO 付 き )」 ○ 「概算数値 リ テ ラ ル」 ○ 「BETWEEN 述語」 ○ 「相関名」 ○ 「日付演算」 ○ 「日付 リ テ ラ ル」 ○ 13 PSQL ODBC リ フ ァ レ ン ス 表 7 SQL 文法のサポー ト SQL ス テー ト メ ン ト 文法 最小 コア 拡張 ○ 「正確な数値 リ テ ラ ル」 ○ 拡張述部 「IN 述語」 ○ 「セ ッ ト 関数」 ○ 「時刻 リ テ ラ ル」 ○ 「 タ イ ム ス タ ンプ リ テ ラ ル」 ○ ○ 「サブ ク エ リ 」 ○ 「SET SECURITY」 「UPDATE (位置付け)」 ○ 「UPDATE」 (検索済み) ○ 「UNION」 ○ SQL ス テー ト メ ン ト 内のデ リ ミ タ ー付き識別子 列名お よ びテーブル名に非標準文字が含まれ る 場合、 列名 と テーブル名はデ リ ミ タ ー付 き 識別子 と し て表記で き ます。 識別子がキーワ ー ド であ る 場合は、 デ リ ミ タ ーを付け る 必要があ り ます。 識別子のデ リ ミ タ ー文字は二重引用符です。 例 SELECT " 姓 " FROM " 非標準テーブル " ハ イ フ ンは標準文字ではあ り ません。 SELECT "password" FROM my_pword_tbl "Password" は SET PASSWORD ス テー ト メ ン ト のキーワー ド です。 14 使用で き るデー タ 型 使用で き るデー タ 型 次 の 表 は、 PSQL に よ っ て サ ポ ー ト さ れ る リ レ ー シ ョ ナ ル デー タ 型 に 関す る 情報 を 示 し ま す。 SRDE は、 SQLGetData ま たは SQLBindCol を呼び出す と き に別のデー タ 型変換が指定 さ れない限 り 、 リ レーシ ョ ナル デー タ 型を ODBC のデフ ォ ル ト のデー タ 型に変換 し ます (デー タ 型の変換については、 Microsoft の ODBC ド キ ュ メ ン ト に記載 さ れてい る デー タ 型を参照 し て く だ さ い)。 以下のデー タ 型に関す る 詳 し い情報は、 『SQL Engine Reference』 の 「PSQL ト ラ ンザ ク シ ョ ナルお よ び リ レーシ ョ ナル デー タ 型」 を参照 し て く だ さ い。 PSQL メ タ デー タ の型コ ー ド サイズ 作成 / 追加パ ラ メ ー タ ー 各デー タ 型固有の注記 表 8 PSQL で使用で き る ODBC のデー タ 型 リ レーシ ョ ナル型 ODBC 型 ( コ ー ド ) 1 BFLOAT4 SQL_REAL(7) BFLOAT8 SQL_DOUBLE(8) BIGINT SQL_DECIMAL(3) BINARY SQL_BINARY(-2) BIT SQL_BIT(-7) CHAR SQL_CHAR(1) CURRENCY SQL_DECIMAL(3) DATE SQL_DATE(9) DATETIME SQL_TIMESTAMP(11) DECIMAL SQL_DECIMAL(3) DOUBLE SQL_DOUBLE(8) IDENTITY SQL_INTEGER(4) INTEGER SQL_INTEGER(4) LONGVARBINARY SQL_LONGVARBINARY(-4) LONGVARCHAR SQL_LONGVARCHAR(-1) NCHAR SQL_WCHAR(-8) NLONGVARCHAR SQL_WLONGVARCHAR(-10) NUMERIC SQL_NUMERIC(2) NUMERICSA SQL_NUMERIC(2) NUMERICSLB SQL_NUMERIC(2) 15 PSQL ODBC リ フ ァ レ ン ス 表 8 PSQL で使用で き る ODBC のデー タ 型 リ レーシ ョ ナル型 ODBC 型 ( コ ー ド ) 1 NUMERICSLS SQL_NUMERIC(2) NUMERICSTB SQL_NUMERIC(2) NUMERICSTS SQL_NUMERIC(2) NVARCHAR SQL_WVARCHAR(-9) REAL SQL_REAL(7) SMALLIDENTITY SQL_SMALLINT(5) SMALLINT SQL_SMALLINT(5) TIME SQL_TIME(10) TIMESTAMP SQL_TIMESTAMP(11) TINYINT SQL_TINYINT(-6) UBIGINT SQL_DECIMAL(3) UINTEGER SQL_INTEGER(4) UNIQUEIDENTIFIER SQL_GUID(-11) USMALLINT SQL_SMALLINT(5) UTINYINT SQL_TINYINT(-6) VARCHAR SQL_VARCHAR(12) 1 16 SQL_FLOAT お よ び SQL_VARBINARY は PSQL ではサポー ト さ れません。 無限の表現 無限の表現 PSQL で無限を表すには、 次の表の よ う に、 4 バ イ ト (C 言語の float 型) ま たは 8 バ イ ト (C 言語の double 型) の形式で、 16 進数ま たは文字 と し て表現で き ます。 表 9 無限の表現 値 Float 16 進数 Float 文字 Double 16 進数 正の最大数 0x7FEFFFFFFFFFFFFF 負の最大数 0xFFEFFFFFFFFFFFFF Double 文字 正の無限数 0x7F800000 1E999 0x7FF0000000000000 1E999 負の無限数 0xFF800000 -1E999 0xFFF0000000000000 -1E999 17 PSQL ODBC リ フ ァ レ ン ス ト ラ ンザク シ ョ ン START TRANSACTION ス テー ト メ ン ト は ス ト ア ド プ ロ シージ ャ 外ではサポー ト さ れません。 こ れは、 ODBC 標 準が、すべての ス テー ト メ ン ト はデフ ォ ル ト で ト ラ ンザ ク シ ョ ン内にあ る こ と を条件 と し てい る ためです。ODBC 標準には ト ラ ンザ ク シ ョ ン を開始す る API があ り ません。 『SQL Engine Reference』 の 「START TRANSACTION」 を参照 し て く だ さ い。 ODBC は、 各 SQL ス テー ト メ ン ト を SQL 独自の ト ラ ンザ ク シ ョ ン内に置 く か、 それ と も アプ リ ケーシ ョ ンが各 ト ラ ンザ ク シ ョ ンの終了時を指定す る か ど う か を決定する アプ リ ケーシ ョ ン を提供 し ます。 ODBC は、 ト ラ ンザ ク シ ョ ン内にない ど の ス テー ト メ ン ト よ り 前に、 自動的に ト ラ ンザ ク シ ョ ン を開 き ます。 し たがっ て、 指定 さ れ た接続の最初の ス テー ト メ ン ト 、 あ る いは COMMIT ま た は ROLLBACK 後の最初の ス テ ー ト メ ン ト に よ り 、 ODBC は自動的に新 し い ト ラ ンザ ク シ ョ ン を開始 し ます。 ODBC 標準内では、 SQLSetConnectOption を使っ て、 各ス テー ト メ ン ト を独自の ト ラ ンザ ク シ ョ ン内に置 く か、 ま たはアプ リ ケーシ ョ ンが複数の ス テー ト メ ン ト を 1 つの ト ラ ンザ ク シ ョ ンに ま と め る か ど う か を指定 し ます。 SQLSetConnectOption にオプシ ョ ン SQL_AUTOCOMMIT、 値 SQL_AUTOCOMMIT_ON ( こ れがデフ ォ ル ト です) を指定 し て呼び出す と 、 各 ス テー ト メ ン ト は独自の ト ラ ン ザ ク シ ョ ン内に置かれ ま す。 こ の よ う に使用す る と 、 ト ラ ン ザ ク シ ョ ン は ス テー ト メ ン ト の実行を開始す る と き に開始 さ れ、 ス テー ト メ ン ト の実行の完了時点でエ ラ ーが発生 し ていない場合は自動的に コ ミ ッ ト さ れ、 エ ラ ーが発生 し た場合は ロ ール バ ッ ク さ れ る よ う にな り ま す。 SQLSetConnectOption にオプシ ョ ン SQL_AUTOCOMMIT、 値 SQL_AUTOCOMMIT_OFF を指定 し て呼び出す と 、 アプ リ ケーシ ョ ンが ス テー ト メ ン ト を 1 つの ト ラ ンザ ク シ ョ ンに ま と め る こ と がで き ます。 こ の よ う に使用す る と 、 ト ラ ンザ ク シ ョ ンは実行 さ れ る 最初の ス テー ト メ ン ト を開始す る と き に開始 さ れます。 その後、 ト ラ ンザ ク シ ョ ン をいつ、 ど の よ う に終了す る かは、 アプ リ ケーシ ョ ンが SQLTransact を呼び出すか、 'COMMIT WORK' ま たは 'ROLLBACK WORK' ス テー ト メ ン ト を実行す る かに よ っ て決ま り ます。 アプ リ ケーシ ョ ンが 1 つの ト ラ ン ザ ク シ ョ ン を終了す る と 、 次の ス テー ト メ ン ト の実行時に別の ト ラ ンザ ク シ ョ ンが自動的に開始 さ れます。 18 DSN のセ ッ ト ア ッ プおよび接続文 字列 3 PSQL におけ る DSN と ODBC ア ド ミ ニ ス ト レー タ ーの使用 こ の章では、 以下の項目について説明 し ます。 「ODBC デー タ ベース ア ク セ ス」 「PSQL DSN セ ッ ト ア ッ プ」 「PSQL エン ジ ン DSN セ ッ ト ア ッ プ」 「DSN セ ッ ト ア ッ プを介 し たデー タ ベース の作成」 「ODBC 接続文字列」 19 DSN のセ ッ ト ア ッ プおよび接続文字列 ODBC デー タ ベース ア ク セス 標準 ODBC では、ODBC を使用す る アプ リ ケーシ ョ ンはオペレーテ ィ ン グ シ ス テ ムで定義 さ れてい る デー タ ソ ー ス名 (DNS) を介 し てデー タ ベース にア ク セ ス し ます。 PSQL では、 DSN 接続文字列ま たは DSN レ ス接続文字列 を利用す る こ と がで き ます。 PSQL はデー タ ベース エン ジ ン と の通信用の ODBC ド ラ イ バーを提供 し ます。 こ れ ら の ド ラ イ バーは、 DSN と 関連付け ら れてい る か、 接続文字列で指定 さ れてい ます。 以下のセ ク シ ョ ンでは、 PSQL ODBC ド ラ イ バーの一覧を示 し 、 DSN デー タ ベース ア ク セ スお よ び DSN レ ス の 接続文字列ア ク セ ス について簡単に説明 し ます。 PSQL ODBC ド ラ イバー名 デー タ ベース エン ジ ン と の通信には、 PSQL ODBC ド ラ イ バーを利用 し ます。 DSN を作成す る と き に適切な ド ラ イ バー と 関連付けが行われます。 接続文字列を利用 し てい る 場合は、 適切な ド ラ イ バーを指定す る 必要があ り ま す。 次の表は、 PSQL ODBC ド ラ イ バーの一覧を示 し ます。 表 10 PSQL ODBC ド ラ イバー ド ラ イバー名 ビッ ト数 備考 Pervasive ODBC Unicode Interface 32 ビ ッ ト と 64 ビ ッ ト Windows オペレーテ ィ ン グ シ ス テ ムでのみ利用で き ます。 1 ロ ーカルま たは リ モー ト の名前付 き デー タ ベースへ接続 し ます。 32 ビ ッ ト ODBC ア ド ミ ニ ス ト レー タ ーでは、 ワ イ ド 文字デー タ を扱 う 32 ビ ッ ト アプ リ ケーシ ョ ン向けの 32 ビ ッ ト DSN を作成 し ます。 64 ビ ッ ト ODBC ア ド ミ ニ ス ト レー タ ーでは、 ワ イ ド 文字デー タ を扱 う 64 ビ ッ ト アプ リ ケーシ ョ ン向けの 64 ビ ッ ト DSN を作成 し ます。 Pervasive ODBC Interface 64 ビ ッ ト 64 ビ ッ ト DSN を作成 し ます。 ロ ーカルま たは リ モー ト の名前付 き デー タ ベースへ接続 し ます。 64 ビ ッ ト アプ リ ケーシ ョ ン向け。 Pervasive ODBC Client Interface 32 ビ ッ ト 32 ビ ッ ト ク ラ イ ア ン ト DSN を作成 し ます。 ロ ーカル ま たは リ モー ト の名前付 き デー タ ベー ス、 あ る いはエ ン ジ ン DSN へ接続 し ます。 イ ン タ ーフ ェ イ ス GUI では、 名前付 き デー タ ベース と エン ジ ン DSN の両方を一覧に表示 し ます。 32 ビ ッ ト アプ リ ケーシ ョ ン向け。 Pervasive ODBC Engine Interface 32 ビ ッ ト 32 ビ ッ ト エ ン ジ ン DSN を作成 し ます。 2 ロ ーカルの名前付 き デー タ ベースへ接続 し ます。 32 ビ ッ ト アプ リ ケーシ ョ ン向け。 非推奨 1 Linux お よ び OS X では通常、 シ ス テ ム エ ン コ ー ド は UTF-8 です。 こ のエン コ ー ド を使用す る と SQL テ キ ス ト に ワ イ ド 文 字デー タ を含め る こ と がで き ます。UTF-8 を使用す る SQL テ キ ス ト は既存の Pervasive ODBC Client Interface ド ラ イ バー と 互 換性があ る ので、 Linux ま たは OS X で ODBC Unicode ド ラ イ バーは必要あ り ません。 2 新規ま たは修正を施す 32 ビ ッ ト アプ リ ケーシ ョ ンは、 ロ ーカルで も リ モー ト で も 、 エン ジ ン DSN を使用す る のではな く 、 名前付 き デー タ ベース に接続す る か、 ク ラ イ ア ン ト DSN を使用す る 必要があ り ます。 こ の代わ り に、 Pervasive ODBC Client Interface を指定す る こ と に よ っ て アプ リ ケーシ ョ ンが DSN レ ス接続を使用す る と い う 方法 も あ り ます。 エ ン ジ ン DSN の使 用を避け る こ と で、 将来エ ン ジ ン DSN が PSQL でサポー ト さ れな く な っ て も アプ リ ケーシ ョ ン を維持す る こ と がで き ます。 20 ODBC デー タ ベース ア ク セス DSN 接続 PSQL はフ ァ イ ル DSN をサポー ト し ません。 ユーザー DSN ま たはシ ス テ ム DSN を使用する 必要があ り ます。 そ の コ ン ピ ュ ー タ ー上のすべてのユーザーが利用可能であ る こ と か ら 、 一般的にはシ ス テ ム DSN が使用 さ れます。 ODBC アプ リ ケーシ ョ ンが DSN の使用を想定 し てい る 場合は、DSN はデー タ ベース を識別す る 必要があ り ます。 PSQL Unicode DSN は、 ロ ーカル ま たは リ モー ト の名前付 き デー タ ベース を指 し ます。 こ れは、 ワ イ ド 文字デー タ を扱 う Windows 32 ビ ッ ト ま たは 64 ビ ッ ト アプ リ ケーシ ョ ン向けです。 ま た、 PSQL は 32 ビ ッ ト お よ び 64 ビ ッ ト 用の非 Unicode DSN も 提供 し ます。 こ れ ら も 、 ロ ーカルま たは リ モー ト の名前付 き デー タ ベース を指 し ます。 32 ビ ッ ト DSN は ク ラ イ ア ン ト DSN と 呼ばれます。 64 ビ ッ ト オペレー テ ィ ン グ シ ス テ ムの DSN は、 単に 64 ビ ッ ト DSN と 呼ばれ、 「 ク ラ イ ア ン ト 」 の名称は付き ません。 こ れは、 64 ビ ッ ト アプ リ ケーシ ョ ン向けです。 ODBC ア ド ミ ニ ス ト レー タ ーを使用 し た DSN の構成お よ び設定については、 「PSQL DSN セ ッ ト ア ッ プ」 を参照 し て く だ さ い。 メ モ PSQL は引 き 続 き 32 ビ ッ ト 版のエン ジ ン DSN の提供を行い ます。 エ ン ジ ン DSN は推奨 さ れていませ ん。 新規ま たは修正を施す 32 ビ ッ ト アプ リ ケーシ ョ ンは、 ロ ーカルで も リ モー ト で も 、 エン ジ ン DSN を使 用す る よ り 、 名前付 き デー タ ベース に接続す る 必要があ り ます。 エン ジ ン DSN の使用を避け る こ と で、 将来 エン ジ ン DSN が PSQL でサポー ト さ れな く な っ て も アプ リ ケーシ ョ ン を維持す る こ と がで き ます。 エン ジ ン DSN は ロ ーカルの名前付 き デー タ ベース のみを指 し ます。 ク ラ イ ア ン ト DSN はエン ジ ン DSN を指す こ と も で き ます。 DSN を使用 し ない接続 (DSN レ ス接続) DSN を利用す る 代わ り に、 アプ リ ケーシ ョ ンは PSQL ド ラ イ バー名を直接指定する こ と に よ っ て、 DSN レ ス接続 を使用す る こ と がで き ます (「ODBC 接続文字列」 を参照 し て く だ さ い)。 Btrieve API や、 その他 ADO.NET な ど の SQL ア ク セ ス方法を利用 し てのみ PSQL デー タ ベース にア ク セ スす る ア プ リ ケーシ ョ ンでは、 DSN は必要あ り ません。 こ れ ら のア ク セ ス方法では、 接続に名前付 き デー タ ベース を用い ます。 こ れは、 ODBC アプ リ ケーシ ョ ンではオプシ ョ ンです。 PSQL Java ユーテ ィ リ テ ィ は DSN を必要 と し ません。 た と えば、 PCC は、 名前付き デー タ ベース では ODBC で はな く JDBC を使用 し ます。 21 DSN のセ ッ ト ア ッ プおよび接続文字列 PSQL DSN セ ッ ト ア ッ プ こ のダ イ ア ロ グは、 ODBC ア ド ミ ニ ス ト レー タ ーか ら 利用で き ます。 以下の PSQL ODBC イ ン タ ーフ ェ イ ス のい ずれか を使用 し て、 DSN を設定す る こ と がで き ます。 Pervasive ODBC Unicode Interface 32 ビ ッ ト ODBC ア ド ミ ニ ス ト レー タ ーを用いた場合は、 32 ビ ッ ト DSN を作成 し ます。 64 ビ ッ ト ODBC ア ド ミ ニ ス ト レー タ ーを用いた場合は、 64 ビ ッ ト DSN を作成 し ます。 Pervasive ODBC Client Interface 32 ビ ッ ト DSN 用。 Pervasive ODBC Interface 64 ビ ッ ト DSN 用。 ODBC ア ド ミ ニス ト レー タ ー Windows 64 ビ ッ ト オペレーテ ィ ン グ シ ス テ ムには、 ODBC ア ド ミ ニ ス ト レー タ ー用の実行可能フ ァ イ ルが 2 種 類含まれてい ます。 1 つは 32 ビ ッ ト DSN 用で、 も う 1 つは 64 ビ ッ ト DSN 用です。 各 ODBC ア ド ミ ニ ス ト レー タ ーは、 自身の ビ ッ ト 数に合致す る シ ス テ ム DSN のみを列挙 し ま す。 つ ま り 、 64 ビ ッ ト ODBC ア ド ミ ニ ス ト レー タ ーは 64 ビ ッ ト シ ス テ ム DSN を列挙 し ます。逆 も ま た同様です。Windows コ ン ト ロ ール パネルか ら ODBC ア ド ミ ニ ス ト レー タ ーを起動 し た場合は、 64 ビ ッ ト バージ ョ ンが実行 さ れます。 PSQL Control Center (PCC) の [ツール] メ ニ ュ ーには、 32 ビ ッ ト ま たは 64 ビ ッ ト の ODBC ア ド ミ ニ ス ト レー タ ーを起動す る ためのオプシ ョ ンが個々に含まれてい ます。 こ こ で留意す る 点は、 ODBC ア ド ミ ニ ス ト レー タ ー が既に開かれてい る 場合、 Windows はそれをデフ ォ ル ト と す る と い う こ と です。 つま り 、 32 ビ ッ ト ODBC ア ド ミ ニ ス ト レー タ ーが開いてい る と き に 64 ビ ッ ト 用を起動 し よ う と する と 、Windows は 32 ビ ッ ト バージ ョ ン を表 示 し ます (逆 も 同様) 。 言い換え る と 、 ODBC ア ド ミ ニ ス ト レー タ ーは同時に 1 つのバージ ョ ン し か実行 さ れな い と い う こ と です。 こ れは Windows オペレーテ ィ ン グ シ ス テ ムの制限であ り 、 PSQL の制限ではあ り ません。 デー タ ソ ース名 ODBC ク ラ イ ア ン ト サーバー アーキ テ ク チ ャ は特定のデー タ セ ッ ト を それぞれの名前で呼び出すので、 わか り やすい名前で参照す る こ と がで き ます。 接続を セ ッ ト ア ッ プす る デー タ ソ ー ス の名前 (デー タ ソ ー ス 名 ま たは DSN と 呼び ま す) を入力 し ま す。 こ の DSN はデー タ ソ ース の識別に役立ち ます。 デー タ ベー ス エン ジ ン での DSN の使用に関す る 詳細については、 「ODBC デー タ ベース ア ク セ ス」 を参照 し て く だ さ い。 説明 必要に応 じ て、 DSN の説明を入力 し ます。 説明は、 DSN、 デー タ ベース、 ま たはアプ リ ケーシ ョ ンの識別に役立 ち ます。 サーバー名 /IP デー タ ベース エン ジ ンが実行 さ れてい る マシ ン を指定 し ます。ク ラ イ ア ン ト を接続 さ せる サーバー マシ ンのマシ ン名ま たは IP ア ド レ ス を入力 し ます。 転送の ヒ ン ト 使用す る 転送プ ロ ト コ ルま たは最初に試行する 転送プ ロ ト コ ルを指定 し ます。 デフ ォ ル ト は "TCP:SPX" (" 先に TCPIP を試行 し てか ら SPX を試行 ") です。 た と えば、 "TCP" ("TCP のみ試行 ") と い う 値を設定す る と 、 ク ラ イ ア ン ト は TCP/IP 接続のみを使用す る よ う に指定で き ます。 "SPX:TCP" (" 先に SPX を試行 し てか ら TCP を試 行 ") と い う 値を設定す る と 、 ク ラ イ ア ン ト は まず SPX 接続を試 し 、 成功 し なければ TCP/IP 接続を試行 し ます。 22 PSQL DSN セ ッ ト ア ッ プ デー タ ベース名 [デー タ ベース名] を ク リ ッ ク し 、 [ リ ス ト の取得] を ク リ ッ ク し た ら 、 リ ス ト の中か ら 接続 し たいデー タ ベース を選択 し ます。 こ の リ ス ト は、 「サーバー名 /IP」 に指定 さ れたサーバー上のデー タ ベース を返 し ます。 任意で、 [作成] を ク リ ッ ク し て新 し いデー タ ベース を作成で き ます。 デー タ ベース設定の詳細 次のデー タ ベース設定の詳細については、 「DSN セ ッ ト ア ッ プ を介 し たデー タ ベース の作成」 を参照 し て く だ さ い。 「辞書の ロ ケーシ ョ ン」 「デー タ フ ァ イ ルの ロ ケーシ ョ ン」 「整合性の設定」 「バ ウ ン ド 」 エ ン ジ ン DSN こ のオプシ ョ ンは、32 ビ ッ ト ク ラ イ ア ン ト DSN ダ イ ア ロ グにのみ表示 さ れます。 こ れは、他の PSQL ド ラ イ バー の DSN ダ イ ア ロ グのいずれに も 存在 し ません。 [エ ン ジ ン DSN] を ク リ ッ ク し 、 [ リ ス ト の取得] を ク リ ッ ク し た ら 、 リ ス ト の中か ら ク ラ イ ア ン ト を接続 さ せた いエン ジ ン DSN を選択 し ます。 こ の リ ス ト は、 「サーバー名 /IP」 に指定 さ れたサーバー上のエン ジ ン DSN を返 し ます。 任意で、 [作成] を ク リ ッ ク し て新 し いエン ジ ン DSN を作成 し た り 、 [変更] を ク リ ッ ク し て既存のエン ジ ン DSN を変更す る こ と がで き ます。 「PSQL エン ジ ン DSN セ ッ ト ア ッ プ」 も 参照 し て く だ さ い。 メ モ 新規ま たは修正を施す 32 ビ ッ ト アプ リ ケーシ ョ ンは、 ロ ーカルで も リ モー ト で も 、 エン ジ ン DSN で はな く 名前付 き デー タ ベース に接続す る 必要があ り ます。 こ の代わ り に、 アプ リ ケーシ ョ ンは DSN レ ス接続 を使用す る こ と も で き ます ( 「DSN を使用 し ない接続 (DSN レ ス接続) 」 を参照 し て く だ さ い) 。 エン ジ ン DSN の使用を避け る こ と で、 将来エン ジ ン DSN が PSQL でサポー ト さ れな く な っ て も アプ リ ケーシ ョ ン を 維持す る こ と がで き ます。 詳細な接続属性 以下の接続属性は、 32 ビ ッ ト ク ラ イ ア ン ト DSN、 64 ビ ッ ト ク ラ イ ア ン ト DSN、 お よ び Unicode DSN に適用 さ れます。 「配列フ ェ ッ チを有効にす る 」 「TCP/IP ポー ト 番号」 「エン コ ー ド 変換」 (エン ジ ン DSN に適用 さ れ る 接続属性については、 「エン ジ ン DSN 用の詳細な接続属性」 を参照 し て く だ さ い。) 配列フ ェ ッ チ を有効にする 配列フ ェ ッ チは、 ク ラ イ ア ン ト マシ ン上の結果セ ッ ト のための メ モ リ キ ャ ッ シ ュ です。配列フ ェ ッ チが有効な場 合、 最新の結果セ ッ ト のデー タ は ク ラ イ ア ン ト マシ ンの ロ ーカル メ モ リ にキ ャ ッ シ ュ さ れます。 それに よ っ て、 その後の ク エ リ のパフ ォーマ ン ス が向上 し ます。 複数の ク エ リ を実行す る 場合は、 配列フ ェ ッ チを オンに し てお く こ と をお勧め し ます。 配列フ ェ ッ チのキ ャ ッ シ ュ に使用 さ れ る バ ッ フ ァ ーのデフ ォ ル ト サ イ ズは 8 KB です。 1 か ら 64 KB ま での値を 設定で き ます。 23 DSN のセ ッ ト ア ッ プおよび接続文字列 TCP/IP ポー ト 番号 こ の設定を使用 し て PSQL ODBC 通信を行 う ネ ッ ト ワ ー ク ポー ト 番号を変更す る こ と がで き ます。サーバー エン ジ ンのネ ッ ト ワ ー ク レ イ ヤーに も 同様な設定があ り ます。両方の設定を同時に行っ て同一のポー ト 番号に変更 し ない と 、 ク ラ イ ア ン ト と サーバーは通信で き ません。 注意 サーバーの対応す る ポー ト 番号を変更 し ないのであれば、 ク ラ イ ア ン ト のポー ト 番号 も 変更 し ないで く だ さ い。 サーバーお よ び ク ラ イ ア ン ト が同一のポー ト 番号 を 使用 し な い と 通信す る こ と がで き ま せん。 『Advanced Operations Guide』 の 「TCP/IP ポー ト 」 を参照 し て く だ さ い。 一般的に、 こ のポー ト 番号を変更す る 必要があ る のは、 こ のポー ト を既に使用 し てい る 別のネ ッ ト ワ ー ク サービ ス があ り 、 ほかのアプ リ ケーシ ョ ン よ り PSQL アプ リ ケーシ ョ ンのポー ト 番号を変更す る 方が容易な場合です。 ポー ト に関す る 詳細については、 『Getting Started With PSQL』 の 「デフ ォ ル ト の通信ポー ト の変更」 を参照 し て く だ さ い。 エ ン コ ー ド 変換 エン コ ー ド 変換 と は、 文字デー タ のエン コ ー ド を、 デー タ ベース中に存在す る エン コ ー ド か ら 、 ク ラ イ ア ン ト に 存在す る エン コ ー ド へ変換す る 操作の こ と を言い ます (その逆 も 同様)。 こ れに よ り 、 デー タ ベース と ク ラ イ ア ン ト が異な る エン コ ー ド を使用 し てい る 場合で も 、 ク ラ イ ア ン ト は特定の条件下で、 デー タ ベース のテ キ ス ト の読 み取 り と 書 き 込みが可能にな り ます。両方のエン コ ー ド が同 じ であ る 場合、変換の必要がない こ と は明 ら かです。 変換の有効性は、 ク ラ イ ア ン ト 上 と サーバー上の文字セ ッ ト が どれ く ら い一致 し てい る かに よ り ま す。 つま り 、 共通 し てい る 文字が多いほ ど、 変換は有効にな り ます。 変換で き ない文字は疑問符 ("?") に置 き 換え ら れ ます。 た と えば、 デー タ ベース が OEM コ ー ド ページ 850、 ク ラ イ ア ン ト が ANSI コ ー ド ページ 1252 を利用 し ていた場 合、 文字は変換 さ れますが、 一部の図形記号は変換 さ れません。 デー タ ベース の接続文字列や DSN は、自動的に変換を取 り 決め る よ う にする か、異な る コ ー ド ページのエン コ ー ド 間で OEM/ANSI 変換を実施す る か、 ま たはあ ら ゆ る 変換を無効にす る か を設定す る こ と がで き ます。 Unicode ド ラ イ バーを使用 し てい る 場合は、 自動変換がデフ ォ ル ト です。 それ以外の PSQL ド ラ イ バーの場合は、 「変換な し 」 がデフ ォ ル ト です。自動変換は、DSN セ ッ ト ア ッ プ画面で指定する か、ま たは ODBC 接続文字列で PvTranslate 属性を使用 し て指定で き ます。 次の表は、 ク ラ イ ア ン ト と ド ラ イ バー エン コ ー ド の さ ま ざ ま な組み合わせについて、 文字エン コ ー ド 変換の操作 を ま と めてい ます。1 列目は、 アプ リ ケーシ ョ ンが ANSI ま たは Unicode のいずれであ る か を示 し ます。 2 列目は、 PSQL ド ラ イ バーが ク ラ イ ア ン ト ド ラ イ バー ( ク ラ イ ア ン ト 32 ビ ッ ト /64 ビ ッ ト ド ラ イ バー) ま たは Unicode ド ラ イ バーのいずれであ る か を示 し ます。 ( ク ラ イ ア ン ト ド ラ イ バー と Unicode ド ラ イ バーは、 「ODBC デー タ ベー ス ア ク セ ス」 を参照 し て く だ さ い。) 3 列目は、 Microsoft ODBC Driver Manager が PSQL ODBC ド ラ イ バーにアプ リ ケーシ ョ ン を接続 し て、 テ キ ス ト 変換を実行する こ と がで き る か ど う か を示 し ます。 残 り 3 列は、 特定のエン コ ー ド 設定 (列 4) におけ る 、 SQL テ キ ス ト ま たは CHAR ユーザー デー タ (それぞれ列 5 と 列 6) に対す る PSQL ド ラ イ バーのテ キ ス ト 処理について示 し ます。デー タ ベース か ら デー タ を取得する と き は、変換が逆にな り ます。 設定オプシ ョ ンの説明を ま と めた表は次の と お り です。 表 11 ア プ リ ケーシ ョ ン PSQL ド ラ イバー Microsoft ド ラ イ バー マネージ ャ ー テキス ト 処理 DSN または接続 文字列の変換設定 PSQL ド ラ イバー SQL テキス ト 処理 PSQL ド ラ イバー CHAR デー タ 処理 ANSI ク ラ イ アン ト 変換な し なし 変換な し 変換な し ANSI ク ラ イ アン ト 変換な し OEM/ANSI ク ラ イ アン ト エン コ ー ド を OEM へ ク ラ イ アン ト エン コ ー ド を OEM へ 24 PSQL DSN セ ッ ト ア ッ プ 表 11 ア プ リ ケーシ ョ ン PSQL ド ラ イバー Microsoft ド ラ イ バー マネージ ャ ー テキス ト 処理 DSN または接続 文字列の変換設定 PSQL ド ラ イバー SQL テキス ト 処理 PSQL ド ラ イバー CHAR デー タ 処理 ANSI ク ラ イ アン ト 変換な し 自動 ク ラ イ アン ト エン コ ー ド をデー タ ベー ス エ ン コ ー ド へ ク ラ イ アン ト エン コ ー ド を デー タ ベー ス エ ン コ ー ド へ ANSI Unicode ク ラ イ アン ト エン コ ー ド を SQL テ キ ス ト の UCS-2 へ 自動 UCS-2 を UTF-8 へ ク ラ イ アン ト エン コ ー ド を デー タ ベー ス エ ン コ ー ド へ Unicode ク ラ イ アン ト UCS-2 を ク ラ イ ア ン ト エン コー ド へ なし 変換な し 変換な し Unicode ク ラ イ アン ト UCS-2 を ク ラ イ ア ン ト エン コー ド へ OEM/ANSI ク ラ イ アン ト エン コ ー ド を OEM へ ク ラ イ アン ト エン コ ー ド を OEM へ Unicode ク ラ イ アン ト UCS-2 を ク ラ イ ア ン ト エン コー ド へ 自動 ク ラ イ アン ト エン コ ー ド をデー タ ベー ス エ ン コ ー ド へ ク ラ イ アン ト エン コ ー ド を デー タ ベー ス エ ン コ ー ド へ Unicode Unicode 変換な し 自動 UCS-2 を UTF-8 へ UCS-2 を デ ー タ ベー ス エ ン コ ー ド へ メ モ PSQL ク ラ イ ア ン ト ド ラ イ バーを使用 し てい る 場合、 Unicode の SQL テ キ ス ト は常に、 Microsoft Driver Manager に よ っ て ク ラ イ ア ン ト エン コ ー ド に変換 さ れます。 こ れに よ り 、 SQL ク エ リ テ キ ス ト 内の NCHAR リ テ ラ ルは ク ラ イ ア ン ト の文字セ ッ ト に限定 さ れます。SQL ク エ リ テ キ ス ト 内の NCHAR リ テ ラ ルを保持す る には、 PSQL Unicode ド ラ イ バーを使用 し ます。 DSN エ ン コ ー ド 変換オプ シ ョ ン エン コ ー ド 変換オプシ ョ ンは、PSQL デー タ ベース エン ジ ン と ODBC を使用す る PSQL ク ラ イ ア ン ト アプ リ ケー シ ョ ン間で文字デー タ を ど の よ う に変換す る か を指定 し ます。こ のオプシ ョ ンは ク ラ イ ア ン ト が 32 ビ ッ ト ま たは 64 ビ ッ ト DSN を設定す る 場合にのみ使用可能です。 Unicode DSN はデフ ォ ル ト で " 自動 " に設定 さ れてい ます。 自動 こ の設定は、エン ジ ン マシ ン上のデー タ ベース のエン コ ー ド が ク ラ イ ア ン ト マシ ン上の OS エン コー ド と 異な る 場合は文字デー タ エ ン コ ー ド を自動的に変換す る よ う 、 PSQL ODBC ク ラ イ ア ン ト に指示 し ます。 Unicode ド ラ イ バーは、 自動的に変換す る よ う にデフ ォ ル ト で設定 さ れてい ます。 文字デー タ の変換は、要求に応 じ て ク ラ イ ア ン ト で行われます。 エン ジ ン マシ ン上のデー タ ベース エン コ ー ド が ク ラ イ ア ン ト マシ ン上の OS エン コ ー ド と 同 じ 場合は、 文字デー タ 変換は不要です。 " 自動 " を指定す る には、 ク ラ イ ア ン ト と サーバーが バージ ョ ン 10.1 以上であ る 必要があ り ます。 『Advanced Operations Guide』 の 「デー タ ベース コ ー ド ページ と ク ラ イ ア ン ト エン コー ド 」 も 参照 し て く だ さ い。 25 DSN のセ ッ ト ア ッ プおよび接続文字列 なし こ の設定では、 ク ラ イ ア ン ト お よ びサーバー間で文字デー タ の変換は行われません ( ク ラ イ ア ン ト と サーバーが 同 じ オペレーテ ィ ン グ シ ス テ ムのエン コ ー ド を使用 し てい る こ と が前提です)。 PSQL v10 SP1 よ り 前のバージ ョ ンでは、 "OEM/ANSI 変換 " は単一選択で、 選択解除ま たは選択の 2 つの状態が あ る だけで し た。現在、選択解除状態は " な し " と 表示 さ れ る よ う にな り 、Unicode ド ラ イ バー以外の PSQL ODBC ド ラ イ バーでは、 こ れがデフ ォ ル ト と な っ てい ます。 OEM/ANSI 変換 こ の設定に よ り 、 アプ リ ケーシ ョ ンは PSQL エン ジ ンのすべての OEM 文字セ ッ ト の文字デー タ を格納ま たは取 得す る こ と がで き 、 アプ リ ケーシ ョ ンの ANSI Windows 文字セ ッ ト を使用 し てデー タ を操作お よ び表示す る こ と がで き ます。 PSQL ODBC ド ラ イ バー ト ラ ン ス レー タ ー DLL が、 2 つの文字セ ッ ト 間で必要な変換をすべて行い ます。 こ の機 能は、 DSN ご と にオン / オ フ を切 り 替え る こ と がで き ます。 デー タ ベース と や り 取 り す る 文字デー タ は ODBC ド ラ イ バーに よ っ て、 OEM 文字セ ッ ト と ANSI 文字セ ッ ト 間で正 し く 変換 さ れます。 ア プ リ ケ ー シ ョ ン で SQLDriverConnect を 使用 し て デー タ ソ ー ス に接続す る 場合は、 接続文字列オ プ シ ョ ン TRANSLATIONDLL=path_and_DLL_name を使っ て、 ト ラ ン ス レ ー タ ー DLL を指定す る こ と も で き ま す。 PSQL 用の ト ラ ン ス レー タ ー DLL 名は W32BTXLT.DLL です。 メ モ OEM か ら ANSI への変換オプシ ョ ンは、 ク ラ イ ア ン ト DSN と 64 ビ ッ ト DSN のみで使用で き ます。 (ま た、 こ の変換オプシ ョ ン を ロ ーカルのエン ジ ン DSN で利用す る こ と も で き ます。 リ モー ト ク ラ イ ア ン ト 接続を エ ン ジ ン DSN に設定 し てい る と き には使用で き ません。 エ ン ジ ン DSN の使用は推奨 さ れてお ら ず、 新 し いアプ リ ケーシ ョ ンには利用で き ない と い う こ と を頭に入れておいて く だ さ い。) デー タ ベース コ ー ド ページ と エ ン コ ー ド 変換の相互の影響 次の表で、 デー タ ベース コ ー ド ページ と DSN エン コ ー ド 間の相互の影響を説明 し ます。 コ ー ド ページの説明に ついては、 「DSN セ ッ ト ア ッ プ を介 し たデー タ ベース の作成」 を参照 し て く だ さ い。 表 12 デー タ ベース コ ー ド ページ と DSN のエ ン コ ー ド 変換設定 デー タ ベースのコ ー ド ページ サーバーのデフ ォ ル ト 接続エ ン コ ー ド 変換 PSQL ODBC ド ラ イバー なし デー タ や メ タ デー タ の変換は行われ ま せん。 サー バー上の OS エ ン コ ー ド と ク ラ イ ア ン ト 上の OS エ ン コ ー ド が一致 し てい る こ と が前提です。 (PSQL v10 SP1 よ り 前 の バー ジ ョ ン のデ フ ォ ル ト の動作 と 同 じ で す。) 特定の コ ー ド ページ なし (PSQL v10 SP1 よ り 前 の バー ジ ョ ン のデ フ ォ ル ト の動作 と 同 じ で す。) サーバーのデフ ォ ル ト ま たは 特定の コ ー ド ページ 26 OEM/ANSI デー タ 変換の互換性のためには、 ク ラ イ ア ン ト マシ ン で使用す る エ ン コ ー ド が、 デー タ ベース におけ る デー タ と メ タ デー タ のエ ン コ ー ド と 一致す る 必要が あ り ます。 デー タ や メ タ デー タ の変換は行われ ま せん。 サー バー上の OS エ ン コ ー ド と ク ラ イ ア ン ト 上の OS エ ン コ ー ド が一致 し てい る こ と が前提です。 デー タ 変換の互換性のためには、 ク ラ イ ア ン ト マシ ン で使用す る エ ン コ ー ド が、 デー タ ベース におけ る デー タ と メ タ デー タ のエ ン コ ー ド と 一致す る 必要が あ り ます。 デー タ ベース コ ー ド ページ を無視 し 、デー タ お よ び メ タ デー タ を、 デー タ ベー ス の OEM エ ン コ ー ド か ら ク ラ イ ア ン ト アプ リ ケーシ ョ ンの ANSI Windows エ ン コ ー ド に変換 し ます。 PSQL DSN セ ッ ト ア ッ プ 表 12 デー タ ベース コ ー ド ページ と DSN のエ ン コ ー ド 変換設定 デー タ ベースのコ ー ド ページ 接続エ ン コ ー ド 変換 PSQL ODBC ド ラ イバー サーバーのデフ ォ ル ト 自動 デー タ お よ び メ タ デー タ を、 サーバーのデフ ォ ル ト の OS エン コ ー ド か ら 、ク ラ イ ア ン ト の OS エ ン コ ー ド に変換 し ます。 特定の コ ー ド ページ 自動 デー タ お よ び メ タ デー タ を、 デー タ ベー ス コ ー ド ページか ら 、 ク ラ イ ア ン ト の OS エ ン コ ー ド に変換 し ます。 27 DSN のセ ッ ト ア ッ プおよび接続文字列 PSQL エ ン ジ ン DSN セ ッ ト ア ッ プ エ ン ジ ン DSN は 32 ビ ッ ト のみです。 Windows 64 ビ ッ ト オペレーテ ィ ン グ シ ス テ ムには、 ODBC ア ド ミ ニ ス ト レー タ ー用の実行可能フ ァ イ ルが 2 種 類含まれてい ます。 1 つは 32 ビ ッ ト DSN 用で、 も う 1 つは 64 ビ ッ ト DSN 用です。 各 ODBC ア ド ミ ニ ス ト レー タ ーは、 自身の ビ ッ ト 数に合致す る シ ス テ ム DSN のみを列挙 し ま す。 つ ま り 、 64 ビ ッ ト ODBC ア ド ミ ニ ス ト レー タ ーは 64 ビ ッ ト シ ス テ ム DSN を列挙 し ます。逆 も ま た同様です。Windows コ ン ト ロ ール パネルか ら ODBC ア ド ミ ニ ス ト レー タ ーを起動 し た場合は、 64 ビ ッ ト バージ ョ ンが実行 さ れます。 エ ン ジ ン DSN は 32 ビ ッ ト で のみ使用で き る ため、 64 ビ ッ ト バージ ョ ン では表示 さ れません。 PSQL Control Center (PCC) の [ツール] メ ニ ュ ーには、 32 ビ ッ ト ま たは 64 ビ ッ ト の ODBC ア ド ミ ニ ス ト レー タ ーを起動す る ためのオプシ ョ ンが個々に含まれてい ます。 こ こ で留意す る 点は、 ODBC ア ド ミ ニ ス ト レー タ ー が既に開かれてい る 場合、 Windows はそれをデフ ォ ル ト と す る と い う こ と です。 つま り 、 32 ビ ッ ト ODBC ア ド ミ ニ ス ト レー タ ーが開いてい る と き に 64 ビ ッ ト 用を起動 し よ う と する と 、Windows は 32 ビ ッ ト バージ ョ ン を表 示 し ます (逆 も 同様) 。 言い換え る と 、 ODBC ア ド ミ ニ ス ト レー タ ーは同時に 1 つのバージ ョ ン し か実行 さ れな い と い う こ と です。 こ れは Windows オペレーテ ィ ン グ シ ス テ ムの制限であ り 、 PSQL の制限ではあ り ません。 メ モ 新規ま たは修正を施す 32 ビ ッ ト アプ リ ケーシ ョ ンは、 ロ ーカルで も リ モー ト で も 、 エン ジ ン DSN で はな く 名前付 き デー タ ベース に接続す る 必要があ り ます。 こ の代わ り に、 アプ リ ケーシ ョ ンは DSN レ ス接続 を使用す る こ と も で き ます ( 「DSN を使用 し ない接続 (DSN レ ス接続) 」 を参照 し て く だ さ い) 。 エン ジ ン DSN の使用を避け る こ と で、 将来エン ジ ン DSN が PSQL でサポー ト さ れな く な っ て も アプ リ ケーシ ョ ン を 維持す る こ と がで き ます。 デー タ ソ ース名 ODBC ク ラ イ ア ン ト サーバー アーキ テ ク チ ャ は特定のデー タ セ ッ ト を それぞれの名前で呼び出すので、 わか り やすい名前で参照す る こ と がで き ます。 接続を セ ッ ト ア ッ プす る デー タ ソ ー ス の名前 (デー タ ソ ー ス 名 ま たは DSN と 呼び ま す) を入力 し ま す。 こ の DSN はデー タ ソ ース の識別に役立ち ます。 デー タ ベー ス エン ジ ン での DSN の使用に関す る 詳細については、 「ODBC デー タ ベース ア ク セ ス」 を参照 し て く だ さ い。 説明 必要に応 じ て、 DSN の説明を入力 し ます。 説明は、 DSN、 デー タ ベース、 ま たはアプ リ ケーシ ョ ンの識別に役立 ち ます。 デー タ ベース名 DSN に関連付け る デー タ ベース を選択 し ます。 オプシ ョ ンで [作成] を ク リ ッ ク す る と 、 新規デー タ ベース を作 成で き ます。 デー タ ベース設定の詳細 次のデー タ ベース設定の詳細については、 「DSN セ ッ ト ア ッ プ を介 し たデー タ ベース の作成」 を参照 し て く だ さ い。 「辞書の ロ ケーシ ョ ン」 「デー タ フ ァ イ ルの ロ ケーシ ョ ン」 「整合性の設定」 「バ ウ ン ド 」 28 PSQL エ ン ジ ン DSN セ ッ ト ア ッ プ エ ン ジ ン DSN 用の詳細な接続属性 エン ジ ン DSN 用の接続属性には以下の も のがあ り ます。 「DSN オープン モー ド 」 「エン コ ー ド 変換」 メ モ エン ジ ン DSN は推奨 さ れてい ません。 新規ま たは修正を施すアプ リ ケーシ ョ ンは、 接続モー ド が ロ ー カルで も リ モー ト で も 、 ク ラ イ ア ン ト DSN を使用 し て く だ さ い。 DSN オープ ン モー ド エン ジ ン DSN 用の DSN オープン モー ド オプシ ョ ン を使用す る と 、 指定 し た DSN を介 し てテーブルを開 く 際に 適用す る 特性を指定で き ます。 こ れ ら のオプシ ョ ンは互いに排他的で、 1 つ し か選択す る こ と はで き ません。 こ れ ら のオプシ ョ ンは Btrieve の 「Open (0)」 オペレーシ ョ ンで使用で き る オープン モー ド に直接対応 し てい ま す。 DSN のオープン モー ド を設定す る こ と に よ り 、 その DSN に よ っ て開かれ る テーブル (Btrieve フ ァ イ ルに対 応) のデフ ォ ル ト の動作を設定す る こ と にな り ます。 表 13 DSN オープ ン モー ド および ODBC 接続オプ シ ョ ン オープ ン モー ド 生成 さ れる ODBC 接続文字列 SQLSetConnectOption 呼び出 し ノ ーマル OPENMODE=0 SQLSetConnectOption(pSubDbc, SQL_ACCESS_MODE, SQL_ MODE_READ_WRITE); アクセラ レイテ ィ ド OPENMODE=-1 SQLSetConnectOption は無視 さ れます。 リ ー ド オン リ ー OPENMODE=1 SQLSetConnectOption(pSubDbc, SQL_ACCESS_MODE, SQL_ MODE_READ_WRITE); エ ク ス ク ルーシブ OPENMODE=-4 SQLSetConnectOption は無視 さ れます。 ノ ーマル デフ ォ ル ト は ノ ーマル モー ド です。 ノ ーマル モー ド でテーブルを開 く と 、デー タ ベース に定義 さ れてい る 権限に 従っ て読み込み / 書 き 込みア ク セ ス が許可 さ れます。 こ のモー ド が選択 さ れた場合、 ODBC 接続文字列には OPENMODE=0 が含まれ、 デー タ ベース に接続 し た際に次 の ODBC 関数呼び出 し が実行 さ れます。 SQLSetConnectOption(pSubDbc, SQL_ACCESS_MODE, SQL_MODE_READ_WRITE); アクセラレイテ ィ ド ア ク セ ラ レ イ テ ィ ド モー ド でテーブルを開 く と 、デー タ ベース エン ジ ンが現在のユーザーに対 し 関数の ロ ギ ン グ を行え な く な り 、 追加 / 更新のパフ ォーマ ン ス が向上 し ます。 ア ク セ ラ レ イ テ ィ ド モー ド の ロ ギ ン グ を変更 し て も 、 同 じ テーブルにア ク セ ス し てい る 他のユーザーには影響があ り ません。 注意 デー タ ベース エン ジ ンは、 ク ラ イ ア ン ト がア ク セ ラ レ イ テ ィ ド モー ド を使用 し てい る 間は、 ク ラ イ ア ン ト の ト ラ ンザ ク シ ョ ン ア ト ミ シテ ィ 、 ト ラ ンザ ク シ ョ ン一貫性保守、お よ びアーカ イ ブ ロ グの安全性を保 証で き ません。 こ の制約があ る のは、 ロ グか ら の復元が必要な場合に、 完全な復元を行 う ために十分な情報 が ロ グに含まれていない可能性があ る か ら です。 なぜな ら 、 ロ グは、 1 つのデー タ フ ァ イ ル上で行っ た操作 の部分的な記録で し かないか ら です。 た と えば、 ア ク セ ラ レ イ テ ィ ド モー ド を使用 し て追加を実行中の ク ラ イ ア ン ト と 、 ノ ーマル モー ド を使用 し 29 DSN のセ ッ ト ア ッ プおよび接続文字列 て更新を実行中の ク ラ イ ア ン ト が同 じ フ ァ イ ルへア ク セ ス中にシ ス テ ム障害が発生 し た場合、 メ モ リ 上のア ク セ ラ レ イ テ ィ ド の追加操作はデ ィ ス ク に書き 出 さ れませんが、 ト ラ ンザ ク シ ョ ナルな更新操作は ト ラ ンザ ク シ ョ ン ロ グに書 き 込まれ る ため、デー タ フ ァ イ ルに ま だ存在 し ていない レ コ ー ド に対す る 更新が ト ラ ンザ ク シ ョ ン ロ グに含まれ る 可能性があ り ます。 こ の操作の組み合わせを含むアーカ イ ブ ロ グ を ロ ール フ ォ ワー ド し よ う と す る と 、 失敗 し ます。 こ の モ ー ド が 選 択 さ れ た 場 合、 ODBC 接続文字列 に は OPENMODE=-1 が 含 ま れ、 ODBC ド ラ イ バ ー は SQLSetConnectOption 呼び出 し を無視 し ま す。 こ のモー ド を指定す る のに SQLSetConnectOption は使用で き ま せ ん。 リ ー ド オン リ ー リ ー ド オン リ ー モー ド でテーブルを開いた場合、デー タ ベース構造やデー タ ベース内のデー タ を変更す る 操作は 許可 さ れません。 こ のモー ド が選択 さ れた場合、 ODBC 接続文字列には OPENMODE=1 が含まれ、 デー タ ベース に接続 し た際に次 の ODBC 関数呼び出 し が実行 さ れます。 SQLSetConnectOption(pSubDbc, SQL_ACCESS_MODE, SQL_MODE_READ_WRITE); エ ク ス クルーシ ブ テーブルをエ ク ス ク ルーシブ モー ド で開 く と 、 そのテーブルに対する ほかの接続は許可 さ れません。 そのテーブ ルに現在ほかのユーザーがア ク セ ス し てい る 場合、 エ ク ス ク ルーシブ モー ド で開 く こ と はで き ません。 後で も う 一度試す必要があ り ます。 こ の モ ー ド が 選 択 さ れ た 場 合、 ODBC 接続文字列 に は OPENMODE=-4 が 含 ま れ、 ODBC ド ラ イ バ ー は SQLSetConnectOption 呼び出 し を無視 し ま す。 こ のモー ド を指定す る のに SQLSetConnectOption は使用で き ま せ ん。 エ ン コ ー ド 変換 エン コ ー ド 変換オプシ ョ ンは ク ラ イ ア ン ト DSN や 64 ビ ッ ト DSN 用のオプシ ョ ン と 同 じ です。「エン コ ー ド 変換」 を参照 し て く だ さ い。 30 DSN セ ッ ト ア ッ プ を介 し たデー タ ベースの作成 DSN セ ッ ト ア ッ プ を介 し たデー タ ベースの作成 次の表は、 デー タ ベース の作成ダ イ ア ロ グ上にあ る コ ン ト ロ ールについての説明です。 要素 説明 デー タ ベース名 デー タ ベース一覧に表示 さ れ る デー タ ベース の名前。 た と えば、 PSQL Control Center で表示 さ れ る デー タ ベース名です。 メ モ : 既存のデー タ ベース名 と 同 じ 名前にす る こ と はで き ません。 整合性の設定 デー タ ベース に整合性制約 (セキ ュ リ テ ィ 、 RI、 ト リ ガー) を設定す る か ど う かを指定 し ます。 こ れ ら の制約は、 デー タ フ ァ イ ルへの ODBC/SQL ア ク セ ス だけでな く 、 Btrieve ア ク セ ス に も 適用 さ れます。 追加情報については、 『Advanced Operations Guide』 の 「Btrieve お よ び リ レーシ ョ ナル制約間の相 互作用」 を参照 し て く だ さ い。 バウ ン ド デー タ ベース が、 バ イ ン ド さ れてい る か ど う かを示 し ます。 デー タ ベース をバ イ ン ド す る と 、 DDF ま たはデー タ フ ァ イ ルが別のデー タ ベース に よ っ て使用 さ れ る こ と を防ぎ、 デー タ フ ァ イ ルが同 一デー タ ベース内で複数の別のテーブル定義を持つ こ と を防ぎ ます。 バ ウ ン ド デー タ ベース の詳細については、 『Advanced Operations Guide』 の 「バ ウ ン ド デー タ ベー ス と 整合性の設定」 を参照 し て く だ さ い。 長 い メ タ デー タ (V2 メ タ デー タ ) デー タ ベース で使用す る メ タ デー タ に対 し 、 バージ ョ ン 1 (V1) ま たはバージ ョ ン 2 (V2) の ど ち ら かを指定 し ます。 PSQL エン ジ ンは、 メ タ デー タ でバージ ョ ン 1 (V1) と バージ ョ ン 2 (V2) と い う 2 つのバージ ョ ン をサポー ト し ます。 メ タ デー タ のバージ ョ ンはデー タ ベース のプ ロ パテ ィ です。 こ のプ ロ パテ ィ はそのデー タ ベース内の全テーブルに対 し て適用 さ れ、dbnames.cfg フ ァ イ ルに記録 さ れます。デー タ ベース では メ タ デー タ バージ ョ ン 1 を使用す る テーブル と メ タ デー タ バージ ョ ン 2 を使用す る テーブルを一緒に使用す る こ と はで き ません。 2 つのバージ ョ ンの メ タ デー タ はそれぞれ情報をや り 取 り す る こ と がで き ません。 追加情報については、 『SQL Engine Reference』 の 「PSQL メ タ デー タ 」 を参照 し て く だ さ い。 コ ー ド ページ デー タ ベー ス のデー タ お よ び メ タ デー タ に適用 さ れ る コ ー ド ページ を 指定 し ま す。 こ のプ ロ パ テ ィ は DBNAMES.cfg に格納 さ れます。 デフ ォ ル ト の コ ー ド ページは " サーバーのデフ ォ ル ト " で、 デー タ ベース エ ン ジ ン実行中のサー バーのオペレーテ ィ ン グ シ ス テ ム コ ー ド ページ を意味 し ます。 デー タ ベース コ ー ド ページ と ク ラ イ ア ン ト エ ン コ ー ド は別個の も のですが、 相互に関連 し てい ま す。 『Advanced Operations Guide』 の 「デー タ ベース コ ー ド ページ と ク ラ イ ア ン ト エ ン コ ー ド 」 を 参照 し て く だ さ い。 Btrieve セ キ ュ リ テ ィ ポ リ シー ト ラ ンザ ク シ ョ ナル イ ン タ ーフ ェ イ ス で使用す る セ キ ュ リ テ ィ モデル を指定 し ま す。 『Advanced Operations Guide』 の 「MicroKernel エ ン ジ ンで使用可能なモデル」 を参照 し て く だ さ い。 辞書の ロ ケーシ ョ ン こ の場所は、 辞書フ ァ イ ル (DDF) が存在す る 物理的な保管場所を指定 し ます。 こ の場所は、 接続 し てい る サーバー と 同 じ サーバーで、 デー タ ベース エ ン ジ ンが実行 さ れてい る サーバーにあ る 必 要があ り ます。 場所の形式は、 サーバー マ シ ン で直接作業 し てい る よ う な形式にす る 必要があ り ます。 drive:\path と い う 形式で入力 し ます。 drive はサーバーの ド ラ イ ブ名です。 デー タ フ ァ イ ルの ロ ケーシ ョ ン こ の場所は、 デー タ フ ァ イ ルが存在す る 物理的な保管場所を指定 し ます。 [追加] ボ タ ン を ク リ ッ ク す る と 、 デー タ フ ァ イ ルの場所を リ ス ト に追加す る こ と がで き ます。 [削除] ボ タ ン を ク リ ッ ク す る と 、 デー タ フ ァ イ ルの場所を リ ス ト か ら 削除す る こ と がで き ます。 デー タ フ ァ イ ルの場所は、 デー タ ベース エ ン ジ ンが起動 し てい る 同 じ サーバー上でなければな り ません。 [辞書の ロ ケーシ ョ ン] について も 同 じ 方法で場所を指定 し て く だ さ い。 31 DSN のセ ッ ト ア ッ プおよび接続文字列 ODBC 接続文字列 こ のセ ク シ ョ ンでは、 PSQL でサポー ト さ れ る ODBC 接続文字列について説明 し ます。 こ の情報は、 接続文字列 を指定す る こ と がで き る デー タ ベー ス ア ク セ ス ツールを使用す る 上級ユーザー、 お よ び PSQL にア ク セ スす る ODBC ま たは OLE DB アプ リ ケーシ ョ ンの開発者向けです。 ODBC ド ラ イバー パラ メ ー タ ー PSQL デー タ ベース エン ジ ンに接続す る には、 PSQL ODBC ド ラ イ バーを使用す る よ う に指定する 必要があ り ま す。 使用可能な ド ラ イ バーの詳細については、 「PSQL ODBC ド ラ イ バー名」 を参照 し て く だ さ い。 ODBC の Driver パ ラ メ ー タ ーを使用 し て、 適切な ド ラ イ バーを指定 し ます。 た と えば、 次の よ う に指定 し ます。 Driver={Pervasive ODBC Unicode Interface} Driver={Pervasive ODBC Interface} Driver={Pervasive ODBC Client Interface} Driver={Pervasive ODBC Engine Interface} Driver パラ メ ー タ ー Driver パ ラ メ ー タ ーで指定 さ れた特定の ド ラ イ バーには、 サーバー、 ポー ト 、 デー タ ベース な ど の名前を付け る ための追加の属性パ ラ メ ー タ ーがあ り ます。 こ れ ら の共通パ ラ メ ー タ ーに加えて、 各 ド ラ イ バー固有のパ ラ メ ー タ ー も あ り ます。 次の表は、 さ ま ざ ま な ド ラ イ バーで利用で き る ド ラ イ バー パ ラ メ ー タ ーを示 し てい ます。 属性 は、 ODBC 関数の SQLDriverConnect ま たは SQLConnect を介 し て含め る こ と がで き ます。 表 14 Unicode ド ラ イバーの接続文字列パ ラ メ ー タ ー 接続文字列パラ メ ー タ ー 説明 ServerName=server[.port] 接続す る コ ン ピ ュ ー タ ーのマシ ン名ま たは IP ア ド レ ス を指定 し ます。必須。Port は下位互換性のために用意 さ れてい ま す。 デフ ォ ル ト のポー ト を使用 し ない場 合は、 使用す る ポー ト 番号を指定す る こ と がで き ます。 IPv6 ア ド レ ス を使用 し た り 、 ODBC 接続にポー ト 番号を追加 し た り す る 場合は、 IPv6-literal.net 名ま た は UNC で正 し く 動作す る 名前を使用 し ます。『Getting Started With PSQL』 の 「 ド ラ イ ブ ベース の形式」 を参照 し て く だ さ い。 TransportHint=<TCP | SPX>[:SPX | TCP] 使用す る 転送プ ロ ト コ ル ま たは最初に試行す る 転送プ ロ ト コ ル を指定 し ま す。 デフ ォ ル ト は "TCP:SPX" (" 先に TCPIP を試行 し てか ら SPX を試行 ") です。 省 略可能。 た と えば、 "TCP" ("TCP のみ試行 ") と い う 値を設定す る と 、 ク ラ イ ア ン ト は TCP/IP 接続のみを使用す る よ う に指定で き ます。 "SPX:TCP" (" 先に SPX を試 行 し てか ら TCP を試行 ") と い う 値を設定す る と 、 ク ラ イ ア ン ト は まず SPX 接 続を試 し 、 成功 し なければ TCP/IP 接続を試行 し ます。 DBQ=[@]db_name 接続す る 内部デー タ ベース名を指定 し ます。 DSN ではあ り ません。 必須。 @ 文字は省略可能です。 こ の文字はなんの意味 も 持たず、 以前のバージ ョ ン と の互換性のためだけにサポー ト さ れてい ます。 TCPPort=port サーバー を 探す TCP/IP ポー ト を 指定 し ま す。 省略可能。 『Getting Started With PSQL(Server Edition)』の「デフ ォ ル ト の通信ポー ト の変更」を参照 し て く だ さ い。 ArrayFetchOn=1 | 0 結果セ ッ ト を ク ラ イ ア ン ト 上にキ ャ ッ シ ュ す る か ど う か を指定 し ま す。 デフ ォ ル ト は 1 (キ ャ ッ シ ュ す る ) です。 省略可能。 ArrayBufferSize=size ク ラ イ ア ン ト キ ャ ッ シ ュ のサ イ ズ を KB 単位で指定 し ます。デフ ォ ル ト は 8 KB です。 省略可能。 32 ODBC 接続文字列 表 14 Unicode ド ラ イバーの接続文字列パ ラ メ ー タ ー 接続文字列パラ メ ー タ ー 説明 PvTranslate=auto ク ラ イ ア ン ト がデー タ ベース エ ン ジ ンに接続す る と き に、 デー タ エン コ ー ド の 処理方法を指定 し ま す。 (詳細については、 「エ ン コ ー ド 変換」 を参照 し て く だ さ い)。 Unicode ド ラ イ バーの PvTranslate はデフ ォ ル ト で " 自動 " に設定 さ れてい ます。 こ れに よ り 、明示的に PvTranslate を " 自動 " に設定 し な く て も 、ワ イ ド 文字デー タ を含んでい る NCHAR 列や NCHAR リ テ ラ ルを使用で き る よ う にな り ます。 属性を " 自動 " に設定 し た場合、 ク ラ イ ア ン ト と サーバーは自動的に適合す る エ ン コ ー ド を確立 し ま す。 デー タ 変換は、 必要に応 じ ク ラ イ ア ン ト で行われ ま す。 UID=user_name デー タ ベー ス のセ キ ュ リ テ ィ が有効にな っ てい る 場合、 ユーザー名を指定 し ま す。 セ キ ュ リ テ ィ の 設定 に よ り 、 省略可能。 『Advanced Operations Guide』 の 「PSQL セキ ュ リ テ ィ 」 を参照 し て く だ さ い。 PWD=password デー タ ベー ス のセ キ ュ リ テ ィ が有効にな っ てい る 場合、 パ ス ワ ー ド を指定 し ま す。 セ キ ュ リ テ ィ の 設定 に よ り 、 省略可能。 『Advanced Operations Guide』 の 「PSQL セキ ュ リ テ ィ 」 を参照 し て く だ さ い。 例A "ServerMain" と い う リ モー ト サーバー上にあ る 、 ワ イ ド 文字デー タ を含んでい る "SOMEDATA" と い う デー タ ベース に対 し 、 TCP/IP ポー ト 1590 を使用 し て、 まず TCP/IP 接続を試みてか ら SPX 接続を試み る 方法を 用いて接続 し ます。 Driver={Pervasive ODBC Unicode Interface}; ServerName=ServerMain.1590;DBQ=SOMEDATA; TransportHint=TCP:SPX; 例B デー タ ベー ス セ キ ュ リ テ ィ が有効に な っ て い る ロ ーカ ル サーバー上の、 ワ イ ド 文字デー タ を 含んでい る "EuropeRegion4" と い う 名前のデー タ ベース に接続 し ます。 Driver={Pervasive ODBC Unicode Interface}; DBQ=EuropeRegion4;UID=tonyawu7;PWD=HR19lb8w; 表 15 64 ビ ッ ト ド ラ イバーの接続文字列パラ メ ー タ ー 接続文字列パラ メ ー タ ー 説明 ServerName=server[.port] 接続す る コ ン ピ ュ ー タ ーのマシ ン名ま たは IP ア ド レ ス を指定 し ます。必須。Port は下位互換性のために用意 さ れてい ま す。 デフ ォ ル ト のポー ト を使用 し ない場 合は、 使用す る ポー ト 番号を指定す る こ と がで き ます。 IPv6 ア ド レ ス を使用 し た り 、 ODBC 接続にポー ト 番号を追加 し た り す る 場合は、 IPv6-literal.net 名ま た は UNC で正 し く 動作す る 名前を使用 し ます。『Getting Started With PSQL』 の 「 ド ラ イ ブ ベース の形式」 を参照 し て く だ さ い。 TransportHint=<TCP | SPX>[:SPX | TCP] 使用す る 転送プ ロ ト コ ル ま たは最初に試行す る 転送プ ロ ト コ ル を指定 し ま す。 デフ ォ ル ト は "TCP:SPX" (" 先に TCPIP を試行 し てか ら SPX を試行 ") です。 省 略可能。 た と えば、 "TCP" ("TCP のみ試行 ") と い う 値を設定す る と 、 ク ラ イ ア ン ト は TCP/IP 接続のみを使用す る よ う に指定で き ます。 "SPX:TCP" (" 先に SPX を試 行 し てか ら TCP を試行 ") と い う 値を設定す る と 、 ク ラ イ ア ン ト は まず SPX 接 続を試 し 、 成功 し なければ TCP/IP 接続を試行 し ます。 DBQ=[@]db_name 接続す る 内部デー タ ベース名を指定 し ます。 DSN ではあ り ません。 必須。 @ 文字は省略可能です。 こ の文字はなんの意味 も 持たず、 以前のバージ ョ ン と の互換性のためだけにサポー ト さ れてい ます。 33 DSN のセ ッ ト ア ッ プおよび接続文字列 表 15 64 ビ ッ ト ド ラ イバーの接続文字列パラ メ ー タ ー 接続文字列パラ メ ー タ ー 説明 TCPPort=port サーバー を 探す TCP/IP ポー ト を 指定 し ま す。 省略可能。 『Getting Started With PSQL(Server Edition)』の「デフ ォ ル ト の通信ポー ト の変更」を参照 し て く だ さ い。 ArrayFetchOn=1 | 0 結果セ ッ ト を ク ラ イ ア ン ト 上にキ ャ ッ シ ュ す る か ど う か を指定 し ま す。 デフ ォ ル ト は 1 (キ ャ ッ シ ュ す る ) です。 省略可能。 ArrayBufferSize=size ク ラ イ ア ン ト キ ャ ッ シ ュ のサ イ ズ を KB 単位で指定 し ます。デフ ォ ル ト は 8 KB です。 省略可能。 PvTranslate=auto ク ラ イ ア ン ト がデー タ ベース エ ン ジ ンに接続す る と き に、 デー タ エン コ ー ド の 処理方法を指定 し ま す。 こ の属性は、 指定 し ないでお く か、 ま たは自動変換を 示すために、 値を " 自動 " に設定す る こ と がで き ます。 (詳細については、 「エ ン コ ー ド 変換」 を参照 し て く だ さ い)。 属性を " 自動 " に設定 し た場合、 ク ラ イ ア ン ト と サーバーは自動的に適合す る エ ン コ ー ド を確立 し ま す。 デー タ 変換は、 必要に応 じ ク ラ イ ア ン ト で行われ ま す。DSN では "OEM/ANSI" よ り " 自動 " が優先 さ れ る こ と に注意 し て く だ さ い。 こ の属性が指定 さ れていない場合、 ODBC は文字デー タ を変換 し ません。 こ れ はデフ ォ ル ト の動作です。旧来どお り "OEM/ANSI" 設定が適用 さ れます。「OEM/ ANSI 変換」 を参照 し て く だ さ い。 UID=user_name デー タ ベー ス のセ キ ュ リ テ ィ が有効にな っ てい る 場合、 ユーザー名を指定 し ま す。 セ キ ュ リ テ ィ の 設定 に よ り 、 省略可能。 『Advanced Operations Guide』 の 「PSQL セキ ュ リ テ ィ 」 を参照 し て く だ さ い。 PWD=password デー タ ベー ス のセ キ ュ リ テ ィ が有効にな っ てい る 場合、 パ ス ワ ー ド を指定 し ま す。 セ キ ュ リ テ ィ の 設定 に よ り 、 省略可能。 『Advanced Operations Guide』 の 「PSQL セキ ュ リ テ ィ 」 を参照 し て く だ さ い。 例 64 ビ ッ ト アプ リ ケーシ ョ ン を使用 し て、 "acctdomestic" と い う 名前の ロ ーカル デー タ ベース に接続 し ます。 Driver={Pervasive ODBC Interface};DBQ=acctdomestic; 表 16 32 ビ ッ ト ク ラ イ ア ン ト ド ラ イバーの接続文字列パラ メ ー タ ー 接続文字列 説明 ServerName=server[.port] 接続す る コ ン ピ ュ ー タ ーのマシ ン名ま たは IP ア ド レ ス を指定 し ます。必須。Port は下位互換性のために用意 さ れてい ま す。 デフ ォ ル ト のポー ト を使用 し ない場 合は、 使用す る ポー ト 番号を指定す る こ と がで き ます。 IPv6 ア ド レ ス を使用 し た り 、 ODBC 接続にポー ト 番号を追加 し た り す る 場合は、 IPv6-literal.net 名ま た は UNC で正 し く 動作す る 名前を使用 し ます。『Getting Started With PSQL』 の 「 ド ラ イ ブ ベース の形式」 を参照 し て く だ さ い。 ServerDSN=dsn_name 接続す る エン ジ ン DSN を指定 し ます。 DBQ が指定 さ れていなければ必須。 TransportHint=<TCP | SPX>[:SPX | TCP] 使用す る 転送プ ロ ト コ ル ま たは最初に試行す る 転送プ ロ ト コ ル を指定 し ま す。 デフ ォ ル ト は "TCP:SPX" (" 先に TCPIP を試行 し てか ら SPX を試行 ") です。 省 略可能。 た と えば、 "TCP" ("TCP のみ試行 ") と い う 値を設定す る と 、 ク ラ イ ア ン ト は TCP/IP 接続のみを使用す る よ う に指定で き ます。 "SPX:TCP" (" 先に SPX を試 行 し てか ら TCP を試行 ") と い う 値を設定す る と 、 ク ラ イ ア ン ト は まず SPX 接 続を試 し 、 成功 し なければ TCP/IP 接続を試行 し ます。 34 ODBC 接続文字列 表 16 32 ビ ッ ト ク ラ イ ア ン ト ド ラ イバーの接続文字列パラ メ ー タ ー 接続文字列 説明 DBQ=[@]db_name 接続す る 内部デー タ ベース名を指定 し ます。 DSN ではあ り ません。 必須。 @ 文字は省略可能です。 こ の文字はなんの意味 も 持たず、 以前のバージ ョ ン と の互換性のためだけにサポー ト さ れてい ます。 TCPPort=port サーバー を 探す TCP/IP ポー ト を 指定 し ま す。 省略可能。 『Getting Started With PSQL(Server Edition)』の「デフ ォ ル ト の通信ポー ト の変更」を参照 し て く だ さ い。 ArrayFetchOn=1 | 0 結果セ ッ ト を ク ラ イ ア ン ト 上にキ ャ ッ シ ュ す る か ど う か を指定 し ま す。 デフ ォ ル ト は 1 (キ ャ ッ シ ュ す る ) です。 省略可能。 ArrayBufferSize=size ク ラ イ ア ン ト キ ャ ッ シ ュ のサ イ ズ を KB 単位で指定 し ます。デフ ォ ル ト は 8 KB です。 省略可能。 PvTranslate=auto ク ラ イ ア ン ト がデー タ ベース エ ン ジ ンに接続す る と き に、 デー タ エン コ ー ド の 処理方法を指定 し ま す。 こ の属性は、 指定 し ないでお く か、 ま たは自動変換を 示すために、 値を " 自動 " に設定す る こ と がで き ます。 (詳細については、 「エ ン コ ー ド 変換」 を参照 し て く だ さ い)。 属性を " 自動 " に設定 し た場合、 ク ラ イ ア ン ト と サーバーは自動的に適合す る エ ン コ ー ド を確立 し ま す。 デー タ 変換は、 必要に応 じ ク ラ イ ア ン ト で行われ ま す。DSN では "OEM/ANSI" よ り " 自動 " が優先 さ れ る こ と に注意 し て く だ さ い。 こ の属性が指定 さ れていない場合、 ODBC は文字デー タ を変換 し ません。 こ れ はデフ ォ ル ト の動作です。旧来どお り "OEM/ANSI" 設定が適用 さ れます。「OEM/ ANSI 変換」 を参照 し て く だ さ い。 UID=user_name デー タ ベー ス のセ キ ュ リ テ ィ が有効にな っ てい る 場合、 ユーザー名を指定 し ま す。 セ キ ュ リ テ ィ の 設定 に よ り 、 省略可能。 『Advanced Operations Guide』 の 「PSQL セキ ュ リ テ ィ 」 を参照 し て く だ さ い。 PWD=password デー タ ベー ス のセ キ ュ リ テ ィ が有効にな っ てい る 場合、 パ ス ワ ー ド を指定 し ま す。 セ キ ュ リ テ ィ の 設定 に よ り 、 省略可能。 『Advanced Operations Guide』 の 「PSQL セキ ュ リ テ ィ 」 を参照 し て く だ さ い。 例A TCP/IP ポー ト 1585 を使用 し て、"AncientLore" と い う リ モー ト サーバー上にあ る "Atlantis" と い う デー タ ベー ス に接続 し ます。 Driver={Pervasive ODBC Client Interface}; ServerName=AncientLore.1585;DBQ=Atlantis; 例B デー タ ベース セキ ュ リ テ ィ が有効にな っ てい る "SalesSvr" と い う リ モー ト サーバー上にあ る 、"DomSales" と い う デー タ ベース に接続 し ます。 Driver={Pervasive ODBC Client Interface}; ServerName=SalesSvr;DBQ=DomSales;UID=alexjame;PWD=k7Jb9xRR; 例C "MyServer" と い う 名前の リ モー ト サーバー上にあ る 、"mydata" と い う エン ジ ン DSN に接続 し 、自動エン コ ー ド サポー ト を確立 し ます。 Driver={Pervasive ODBC Client Interface}; ServerName=MyServer;ServerDSN=mydata;PvTranslate=auto; 35 DSN のセ ッ ト ア ッ プおよび接続文字列 表 17 32 ビ ッ ト エ ン ジ ン ド ラ イバーの接続文字列 接続文字列 DBQ=[@]db_name 説明 接続す る 内部デー タ ベース名を指定 し ます。 DSN ではあ り ません。 必須。 @ 文字は省略可能です。 こ の文字はなんの意味 も 持たず、 以前のバージ ョ ン と の互換性のためだけにサポー ト さ れてい ます。 UID=user_name デー タ ベース のセキ ュ リ テ ィ が有効にな っ てい る 場合、 ユーザー名を指定 し ま す。 セ キ ュ リ テ ィ の設定に よ り 、 省略可能。 『Advanced Operations Guide』 の 「PSQL セキ ュ リ テ ィ 」 を参照 し て く だ さ い。 PWD=password デー タ ベース のセキ ュ リ テ ィ が有効にな っ てい る 場合、 パ ス ワー ド を指定 し ま す。 セ キ ュ リ テ ィ の設定に よ り 、 省略可能。 『Advanced Operations Guide』 の 「PSQL セキ ュ リ テ ィ 」 を参照 し て く だ さ い。 OPENMODE=-4 | -1 | 0 | 1 現在の接続で開 く フ ァ イ ルのデフ ォ ル ト のオープ ン モー ド を指定 し ま す。 デ フ ォ ル ト は 0 です。 "Normal" は ロ ーカル接続だけで使用 さ れ、 リ モー ト ク ラ イ ア ン ト 接続では使用で き ません。 省略可能。 フ ァ イ ル オープン モー ド の詳細については、 「DSN オープ ン モー ド 」 を参照 し て く だ さ い。 TRANSLATIONDLL=path_and_DLL_name OEM/ANSI 変換に使用す る DLL の フル パ ス名を指定 し ます。詳細については、 「OEM/ANSI 変換」 を参照 し て く だ さ い。 例 "DATA5" と い う 名前の ロ ーカル デー タ ベース に接続 し ます。 Driver={Pervasive ODBC Engine Interface};DBQ=DATA5; メ モ エン ジ ン DSN は推奨 さ れてい ません。 新規ま たは修正を施すアプ リ ケーシ ョ ンは、 接続モー ド が ロ ー カルで も リ モー ト で も 、 ク ラ イ ア ン ト DSN を使用 し て く だ さ い。 36
© Copyright 2024 Paperzz