0 フォロワー · 16 投稿

オープンデータベースコネクティビティ(ODBC)は、データベース管理システムにアクセスするための標準的なアプリケーションプログラミングインターフェイス(API)です。 詳細はこちら

記事 Hiroshi Sato · 8月 4, 2025 2m read

前回、macOS上でLibreOfficeからODBC経由でアクセスするためのセットアップについて記事を書きました。

今回 .Net経由でODBCにアクセスする方法を試したので報告します。

LibreOfficeの場合、iODBCでしたが、.Netの場合は、unixODBCを使用します。

従来のバージョンでは、IRISのunixODBCドライバーはUnicode対応(ワイド)でなかったため、.NetのODBCでは日本語を正しく処理できませんでしたが、2025.2よりワイドドライバーが追加されたため正しく処理できるようになりました。

今回.Net経由のアクセスを試した理由は、ODBC版Cache DirectエミュレータをMacで動かせないかと考えたからです。

ODBC版Cache Directエミュレータ

こちらのリポジトリにも設定方法の詳細を記載していますが、Mac上でunixODBCドライバーを設定する方法を紹介します。

  • IRISバージョン

unixODBCのUnicode(ワイド)版のドライバーが必要なため、IRIS 2025.2以降のバージョンが必要です。

  • unixODBCのインストール

Homebrewを使用してインストールします。

0
0 48
記事 Hiroshi Sato · 7月 27, 2025 3m read

これは InterSystems FAQ サイトの記事です。
 

JDBCクライアントからのアクセスでエラーが発生した場合、返ってきたエラーメッセージやコンソールログ上の情報だけでは原因がよくわからない場合があります。

そのような場合にJDBCドライバのクライアントログを取得することで、エラーについての詳細情報を取得することができます。

JDBCログの取得方法については以下をご参照ください。

JDBCのログ

ログを指定する際に、ディレクトリ名を含まずに直接ファイル名を指定した場合、そのアプリケーションのディレクトリにその指定したファイル名でログが出力されます。

ODBCログの様にPID毎に取得する方法は用意されていません。

JDBCログが正常に取得できている場合、以下の様な内容が書き込まれます。

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
	Started At:     2025/03/27 11:52:16
	Driver Name:    com.intersystems.jdbc.IRISDriver
	Jar File Name:  intersystems-jdbc-3.9.0.jar
	Client Version: 3.9.0.0
	Compiled At:    3 June, 2024 at 07:34PM UTC
	JDBC Version:   4.2
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Sent: (03/27/25-11:52:16:156) [ThreadID = 1 ] [JobNumber = -1 ] [DeviceID = 1212899836 ]
Header:
  0000:  02  00  00  00  01  00  00  00  00  00  00  00  48  53      ............HS
Message:
  0000:  43  00                                                      C.


Received: (03/27/25-11:52:16:199) [ThreadID = 1 ] [JobNumber = -1 ] [DeviceID = 1212899836 ]
Header:
  0000:  0D  00  00  00  01  00  00  00  00  00  00  00  00  00      ..............
Message:
  0000:  43  00  01  00  09  01  55  6E  69  63  6F  64  65          C.....Unicode


Sent: (03/27/25-11:52:16:199) [ThreadID = 1 ] [JobNumber = -1 ] [DeviceID = 1212899836 ]
Header:
  0000:  C5  00  00  00  03  00  00  00  00  00  00  00  43  4E      ............CN
Message:
  0000:  06  01  55  53  45  52  09  01  59  78  BA  FA  5C  3B      ..USER..Yx..\;
  000E:  DF  05  01  9E  FF  DE  0A  01  68  73  61  74  6F  63      ........hsatoc
  001C:  74  72  1C  01  6A  70  37  33  32  30  6E  6F  6E  6F      tr..jp7320nono
  002A:  2E  69  73  63  69  6E  74  65  72  6E  61  6C  2E  63      .iscinternal.c
  0038:  6F  6D  05  01  41  70  70  6F  01  06  01  4A  44  42      om..Appo...JDB
  0046:  43  1D  01  69  6E  74  65  72  73  79  73  74  65  6D      C..InterSystems
  0054:  73  2D  6A  64  62  63  2D  33  2E  39  2E  30  2E  6A      s-jdbc-3.9.0.j
  0062:  61  72  09  01  33  2E  39  2E  30  2E  30  11  01  4D      ar..3.9.0.0..M
  0070:  61  63  20  4F  53  20  58  5C  31  35  2E  33  2E  32      ac OS X\15.3.2
  007E:  30  01  4A  61  76  61  20  48  6F  74  53  70  6F  74      0.Java HotSpot
  008C:  28  54  4D  29  20  36  34  2D  42  69  74  20  53  65      (TM) 64-Bit Se
  009A:  72  76  65  72  20  56  4D  5C  32  33  2E  30  2E  31      rver VM\23.0.1
  00A8:  2B  31  31  2D  33  39  0B  01  53  48  4D  7C  7C  7C      +11-39..SHM|||
  00B6:  7C  7C  31  03  01  00  03  04  01  03  04  01  03  04      ||1...........
  00C4:  3B                                                          ;

0
0 133
記事 Hiroshi Sato · 7月 27, 2025 4m read

これは InterSystems FAQ サイトの記事です。
 

ODBCクライアントからのアクセスでエラーが発生した場合、返ってきたエラーメッセージやコンソールログ上の情報だけでは原因がよくわからない場合があります。

そのような場合にODBCドライバのクライアントログを有効にすることで、エラーについての詳細情報を取得することができます。

ODBCログの有効化については以下をご参照ください。

ODBCログの有効化

UNIX系のシステムの場合、上記に記載されている通り、2種類のログが取得できます。 

  • クライアント・ドライバ・ログの取得方法 以下の環境変数でトレースのオンと出力するファイルを指定します。
exportexport
  •  ドライバマネージャのログの取得方法 ドライバマネージャのデータソース設定ファイル(ODBC.ini)に以下の様にトレースをオンにする設定とログファイルの場所と名前を指定します。
[ODBC Data Sources]
IRIS ODBC User = IRIS iODBC Driver

[IRIS ODBC User]
Driver      = /opt/iris/bin/libirisodbc35.so
Description = 
Host        = localhost
Namespace   = USER
UID         = _system
Password	= SYS
Protocol    = TCP
Port        = 1972
Trace		= on
TraceFile   = /Users/user1/work/iodbctrace.log
0
0 110
記事 Hiroshi Sato · 7月 27, 2025 4m read

これは InterSystems FAQ サイトの記事です。
 

ODBCクライアントからのアクセスでエラーが発生した場合、返ってきたエラーメッセージやコンソールログ上の情報だけでは原因がよくわからない場合があります。

そのような場合にODBCドライバのクライアントログを有効にすることで、エラーについての詳細情報を取得することができます

ODBCログの有効化については以下をご参照ください。

ODBCログの有効化

Windowsの場合は、上記に記載されている通り、2種類のログが取得できます。

  • クライアント・ドライバのログを有効にするには、ODBCデータソースアドミニストレータで使用しているDSNの「ODBCログ」チェックボックスをチェックします。 

  • ドライバー・マネージャのログを有効にするには、[トレース]タブをクリックして[トレースの開始]ボタンをクリックします。

 

変更の反映にはODBCクライアントアプリケーションを再起動する必要があります。

既定のODBCクライアントログファイル名は IRISODBC.log で、既定の場所は C:¥Users¥Public¥Logs です。

既定のトレースログ名は、SQL.logで、既定の場所は、c:¥Users¥<ユーザー名>AppData¥Local¥Temp¥です。

0
0 266