ODBC接続テスト



ODBC接続環境におけるBfitSoft動作確認履歴です. Unicode関連など調査中の記述を含みます.

履歴 .

実施 項目 DBMS BfitSoft
2012/7/30 非同期クエリ他 すべて V2.5.37

環境 .

サーバ
  • CentOS V5.5 x64 /V5.7 i386
  • Ubuntu 10.04
  • Windows7 64bit
  • WindowsXP 32bit SP3
データベース
  • DB2 Express-C 9.5.2 / 9.7.1(32bit)
  • Oracle 10g Standard 10.1 /XE 10.2.0.1
  • SQL Server 2005 SP2a / 2008 64bit SP1 express
  • Firebird2.0.5/2.1.2/2.5 RC2 64bit
  • SQLite 3.7.5 (Local) / Ver.3.7.10
  • Access2003(Local)
  • SQL Anywhere 11/12 developer edition(32bit)
  • Cache 2010.1 X64
  • H2 DB 1.2.140 (2010-07-25)
  • HiRDB Version 9
  • PostgreSQL 9.1.2(win) /8.1.23(CentOS5.7)/8.4(Ubuntu Lucid)
Windowsクライアント

WindowsXP SP3 / Windows7 WoW64
Install driver

  • IBM Data Server Runtime Clients
  • Oracle Database 10g Instant Client 10.2.0.3
  • SQLServer Native client 9/10.0
  • Firebird IBPhoenix ODBC Driver2.0
  • SQLite3 ODBC Driver 0.89 / 0.94
  • CacheClient 2010.1
  • PostgreSQL psqlodbc_09_00_0300 – H2 DBで利用
  • PostgreSQL psqlodbc_09_01_0100 /SSL
Linux クライアント

PuppyLinux4.2jp
Wine 1.1.20 WineConfig library override 

  • odbc32(native,builtin)
  • odbccp32(native,builtin)
  • Run Mdac_typ.exe

Install driver

  • Firebird IBPhoenix ODBC Driver2.0
  • SQLite ODBC Driver

結果 .

2012/4 *: 確認済み X:利用不可 (*):一部確認 空欄: 未テスト

操作 機能 Oracle DB2 SQLServer HiRDB SQLAny Firebird H2 Access SQLite Postgres Memo
閲覧 ANSI * * * * * *
Unicode * * * * * * * * * UTF8接続DB:FetchはChar
編集 ANSI * * * * * *
Unicode * * * (*) * * * * *
検索 ANSI * * * * * *
Unicode * * * (*) *(UCS-2) * *(UCS-2) * *
データ処理 ANSI * * * * * * Import/Export
Unicode * * * * * * * * * Import/Export
データリンク クエリ * * * * * * *
* * * * * * *
同期 *
DDL 閲覧 * * * * * * *(PK/IX以外) * * * 日本語Table確認
実行 * * * * * * * * * * 日本語Table確認
インポート * * * * * * *
DML 実行 * * * * * * * * * * 日本語Table確認
View操作 * * * * * * * * 閲覧/検索
Procedure操作
アシスト操作 * * * * * * * * * * フィッタ定義
Bind関連 Char * * * * * * * * * *
WChar *(CharでOK) * (*) * * * NoWchar * 変換なし確認
数値系 * * * * * * * * * *
日付系 * * * * * * * * * *
GUID *
XML * *
Blob操作 テキスト * * * * * * *(Char) *
バイナリ * * * * * *(Char) *
スキーマ * * * * * (*) * X
同時利用 プロセス * * * * * *
カーソル * * * X * *
クエリ 非同期 * * * * X X X
For update X * X * X X
Sequence * X * X (*)
Autoinc/IDENTITY * * X * * *
Firebird

– 閲覧: UTF16 ok, FetchはCharでok
– 編集: パラメタDML UTF16 ok, immediate はUCS-2範囲
– 検索: UCS-2範囲(BMP外はUnexpected end of command)
– メタデータ:UTF8接続時はUCS-2範囲, 2重引用符必要
– 更新系Bind時はCHAR->Truncate発生->WCharに変更
– Blob(テキスト/バイナリ) – 2012/4 参照/更新OK
– Sequence – OK
Version 2.0.1 Release
http://www.firebirdsql.org/index.php?op=files&id=odbc

DB2

– 閲覧/編集/検索: UTF16 ok (v9.5.2はUCS-2範囲)
– 更新系WCHAR変換不要->CHARに変更
– XML操作: SQL20353N Query error, SQL0104N XML Type error
– View操作: V9.7.1はすべてのView name表示される, 表示はok.
– Blob(テキスト/バイナリ) – 2012/4 参照/更新OK
– Sequence – PREVVAL:Seesion内有効 NEXTVAL – 1加算される
– select IDENTITY_VAL_LOCAL() from sysibm.sysdummy1;

Oracle

– NUMBER型: Bind時Size変更必要 – 対応済み
– JA16SJISTILDA/AL32UTF8 ok, FetchはCharでok
– Blob(テキスト/バイナリ) – 2012/4 参照/更新OK
– UTF-8 未テスト – 2012/4 ほぼOK
– Sequence – select xxx.nextval from dual;

SQLServer

– 閲覧/編集: UTF16 ok, DML nchar対応済み
– 検索: UTF16 ok, 2011/5/31 nchar対応済み
– DDL文: スキーマ指定必要
– Native client 10 MARS_connection 自動設定 – 2012/4 改善済み
– 上記ドライバ以外はFetch同時実行不可  - 2012/4 記述変更
– Blob(テキスト/バイナリ) – 2012/4 参照/更新OK
– Autoinc : select @@IDENTITY

H2

– 閲覧: Error while executing the query -> オプション設定でOK
– 編集: 4byteUTF8 ok (PrimaryKeyなし更新)
– DDL: SQLPRIMARYKEY/SQLSTATISTICS でError while … query, Primary/Index取得Skip
– プロトコル Ver. 7.4+ , psqlodbc_09_00_0300
– オプション: サーバPrepare 不要,ステートメント構文解析 (DDL登録により必要)

Access

– Create table実行不可, Space入りメタ名はエラー 2012/4 OK
– Upper関数は未定義 -> UCase対応済み
– Catalog取得など例外発生 – 2011/9 済み
– Fetch/Catalog同時実行 – 2011/9 改善済み
– Blob(テキスト/バイナリ) – 2012/4 参照/更新OK
– Autoinc : SQLServerと同じ

SQLite3

– 閲覧: UTF8 4byte
– 編集: UCS-2範囲
– 検索: UCS-2範囲
– DDL/DML 日本語: テーブル名の参照エラー発生 – V3.7.10 OK
– 高速化 – syncPragma=OFF
– text/blob は char型 (ライブパネルではChar表示)
– Blob(テキスト/バイナリ) – 2012/4 参照/更新OK (V3.7.10 DB再作成必要)
– オプション: NoWchar
– Autoinc: PK=int – ODBC認識OK
DB連携 SQLite

HiRDB

– ODBC Version 2.0利用
– 閲覧/編集/検索 : ANSI範囲はOK
– DDL – 日本語OK, Constraint 構文エラー,PrimaryKeyは連番, KFPA11105-E Invalid token ";"
– DML – OK
– XML系はエラー発生

SQL Anywhere

– 閲覧/編集/検索 : ANSI範囲はOK
– DDL – 日本語OK -> 2011/10 オブジェクト名は日本語は不可(SQL リファレンス)
– DML – OK
– XML系は未テスト
– Unicode(UTF-8)接続
日本語編集/検索NG, メッセージ化け
2011/10/1 V12.1 追記
– NCHAR/NVARCHAR… :UTF-8
– Direct DMLは化ける-> UNISTR関数を使う? – 未テスト
– parameterized DMLは更新OK(ucs-2範囲)
– Blobカーソル メッセージ表示

PostgreSQL

– 閲覧/編集/検索 : OK
– DDL – 日本語OK
– DML – OK
– 小文字標準 – 区切り識別子OK
– クエリClose(Drop cursor)遅い – 件数設定(Limit)で改善
– varchar Max 4096 (ドライバ側設定有)
– Blob(テキスト/バイナリ) 参照/更新OK
– Autoinc : select lastval();
– Sequence – select last_value from xx – 同一Session

MySQL

– サポート外 警告メッセージ表示

PostgreSQL メモ .

> createdb -E utf8 -U postgres testdb
> createuser -a -d -U postgres -P test
> psql -U postgres testdb
> vacuumdb -U postgres testdb

CentOS 5.7(VPS)

/usr/bin
/var/lib/pgsql/pgstartup.log
/var/lib/pgsql/data

pg_hba.conf
  hostssl all all 0.0.0.0 0.0.0.0 password
postgresql.conf 
  listen_addresses = ip_address  #or *
  ssl=true

pg_config(with-opensslの確認)
> yum install postgresql-devel
> pg_config –version –configure

Server SSL

SSL Support
http://www.postgresql.org/docs/9.0/static/libpq-ssl.html
server.key/server.crt – 名称固定
> cd /var/lib/pgsql/data
>chmod 400 server.key
>chmod 444 server.crt

Client SSL

> cd C:\Users\xxx\AppData\Roaming/postgresql
> copy server.crt postgresql.crt
> copy server.key postgresql.key

その他

– 件数増加でメタ取得, 閲覧遅い – OS再起動でWin7/XP共OK 
(Statement Handle Close/Dropが遅い, vaccume効果なし)

2011/7 .

SQL Anywhere developer edition

http://www.ianywhere.jp/dl/dl_evl.html
*Win7は問合わせ必要

ODBC設定

メモ

– ネットワークサーバ/- パーソナルサーバ – DB指定
– Start/Stop: dbeng11 test.db /dbstop
– DB作成:  dbinit test.db /dberase test.db
– DBA User/pass:dba/sql
– User作成
GRANT CONNECT TO user1 IDENTIFIED BY password1;
GRANT DBA TO user1;
– 接続文字セット Ex. Charset=utf-8/Windows-31J or ODBC詳細タブ
– GetInfo
SELECT CONNECTION_PROPERTY( AppInfo );

2011/6 .

HiRDB 体験版

http://www.hitachi.co.jp/Prod/comp/soft1/hirdb/index.html

ODBC設定

登録済みUser

メモ

– ODBCバージョン: 2.0を使う (3.5:FetchScrollエラー発生)
– 接続キャラクタ: ANSIのみ (PD_LANG=UTF-8があるがWindows版の場合はANYだけ)
– Single server: Agent 検索設定
– CM(Control Manager) はWin7に未対応 – Installされない
– CM Version8(32bit) はInstall可 03_CMS,04_CMC,05_CMA
– CM- Agent 認可識別子 root/root

2010/8 .

H2 DB 環境設定

接続モード – Embedded/Server/Mixed mode
PG Server機能 – H2.bat内 org.h2.tools.Server に変更
Webコンソール – localhost:8082
文字セット – UTF-8 (4byte)
パスワード設定 – ALTER USER sa SET PASSWORD <password>;
インポート – SELECT * FROM CSVREAD(<data_path>);
ヘルプ – Ex. HELP CREATE TABLE;
DB作成 – 接続時に作成 – IFEXISTSオプション

データソース設定

– ODBCドライバはPostgreSQL流用 , psqlodbc Unicode版
– 08_02,08_03: 4byteUTF8 化ける, 08_04: 実行時に例外発生&落ちるケースあり
– Port:5435, サーバ側Prepareチェックは不要

確認
操作 機能 確認 メモ
メタデータ テーブル * PrimaryKey 表示なし
列名 * 日本語OK
データリンク 閲覧 * 初回接続遅い, 08_04 でUTF-84byte確認済み
テーブル/列名 * 2重引用符なしでOK
データ処理 閲覧 * 2重引用符 – 改善済み
テーブル/列名 * 日本語OK
ライブ 閲覧 * 初回接続遅い
テーブル/列名 * 2重引用符 – 改善済み
アシスト 閲覧 *
テーブル/列名 *

データタイプ
int4/varchar/date/timestamp

メモ

H2 Chage log
http://www.h2database.com/html/changelog.html

2010/2 結果 .

Unicode(UTF-16/8間)対応

UTF-8接続ができないDBMSを対象に内部でUTF16-UTF8間変換
対象: SQLServer2005/2008/Access
設定: UTF8定義で自動設定または データベース設定で@Charset=UTF8指定

更新系DML対応

定義ツール: クエリ/スクリプト対象

国際化強化など

日本語メタデータ, ライブ/アシストのView追加, データ処理 列自動展開(*指定)

操作 機能 確認 メモ
メタデータ テーブル/列名 * 日本語OK
ビュー/列名 * 日本語OK
Create Table *
Create View (*) 列のみ
Create Procedure (*) 名称のみ
定義インポート *
DML実行 SQLServer * N指定
Access2003 *
Firebird (*) Ansi範囲 – 2.0/2.5仕様/ドライバ側調査
その他
ライブ テーブル/列名 *
ビュー/列名 * V2.5.9機能追加
クエリ/列名 *
* 補助文字OK
Blob 対応予定
アシスト テーブル/列名 *
ビュー/列名 * V2.5.9機能追加
* 補助文字OK
データ処理 テーブル/列名 *
ビュー/列名 * 自動列
* 補助文字OK
レポート テーブル/列名 *
* 補助文字OK
DBリンク SQL *
条件など * Where文N指定
* 補助文字OK
Blob 対応予定

2010/1 結果 .

SQLServer 2008 on Windows 64bit
  • Local : Win7 WoW64 Local (2005 Serverも同時確認)
  • Remote: WinXP 32bit Remote (MDAC, Native client 9.0)
  • Remote10.0: WinXP 32bit Remote (Native client 10.0)

機能 Local Remote Remote10.0 機能/制約など メモ
接続/切断 * * *
メタデータ * (*) * Table/View/Procedure (*)2005接続はOK
データ処理 * (*) * 日本語:JIS90範囲 同上
DBリンク * (*) * 同上
メモ

– TCPポート固定
SQLServer 構成Manager
ネットワーク構成|プロトコル|TCP/IP|IPAll | TCPポート 1433

– サーバ認証
SQLServer Management Studio
サーバ|セキュリティ|サーバ認証| Server/Windows(混在)モード

– sa ユーザの変更
セキュリティ|ログイン| 状態| ログイン有効チェック

– Firewall TCP 1433 -> Start SQL Server agent
– saユーザのAdventureWorksマップ
15405エラー – 調査中

2009/12 .

Firebird 2.5 on Windows 64bit
機能 Local Remote 機能/制約など メモ
接続/切断 * *
メタデータ * * Table/View Procedure調査
データ処理 * *
DBリンク * *

2009/6 結果 .

Windowsクライアント

DBMS 確認 機能/制約など 名称など メタ/型関連 Charset指定 Unicode Memo
DB2 * オーナ(ユーザ) DB2CODEPAGE 接続多少遅い
Oracle * Schema NUMBER(DECIMAL) NLS_Lang 10gR2: 4.0,11g:5.0 同上,4byteUTF8未確認
SQLServer * Catalog/Schema 日本語可 なし(NCharなどの型判断) V7よりUTF16 ユーザログイン,動的Port
SQLite * Date/Time系GetData必要 UTF8, SQLite2は専用ドライバ 4.0対応済 No-WCHAR指定
Access * 日本語可,""は不要 なし UCS2/UTF16 拡張漢字❶文字化け
Anywhere * 日本語可 Charset(詳細) *UTF8指定なし ヘルプUTF8 4byte記述あり
Firebird * Version混在OK 日本語可,""は必要 Procedure/View操作調査 Charset 4.0対応済 Charset混在時は補正
Linux クライアント

DBMS 確認 機能/制約など Memo
SQLite * インストーラOK
Firebird * インストーラOK
Pending
  • Blob バイナリ
  • Catalog
機能/操作テスト – Windows クライアント
操作 機能 DB2 Oracle SQLServer MySQL SQLite Access Anywhere Firebird Memo
定義インポート 列展開 * * * * * * * *
Primary * * * * * * * *
Foreign * * * * *
Index * * * * * * * *
DDL登録 * * * * * * * * Firebird2
データインポート 全列 * * * * * * * *
指定列 * * * * * * * *
SQL組立 Where * * * * * * * *
Order * * * * * * * *
Join * * *(Schema) * * * * * 別名制限あり
Group * * * * *
Having * * * * *
パラメタ :Name ? :Name :Name :Name :Name :Name :Name
文字 * * * * Like? * *(Byte) *
数値 * * * * * * * *
日付 d/m/y y/m/d y/m/d y/m/d integer #y/m/d# y-m-d * パラメタ指定
バイナリ * *
View 一覧 * * * * *
Cursor処理 * * * X
Procedure 一覧 * * * * *
Cursor処理 X Selectable
リンク 閲覧 * * * * * * * *
印刷 * * * * * * * *
接続 DSN * * * * * * * *
接続文字列 * * * * DSN:(None)
Fetch動作 KeySet X X * * * * * *
Forward * *
Version 2.0
3.0
3.5 * * * * * * * *
文字 ANSI系 * * * * * SJIS
Unicode系 UTF8 UTF8 UTF16 UTF8 UTF8 UTF16 UTF8
トランザクション ReadCommit * * * * 不可 不可 * *
グループ Schema * * *
Catalog
その他 Readonly * * * * * * * *
Linuxクライアント

タイプ MySQL SQLite Firebird Memo
定義インポート * * *
データインポート * * *
リンク * * *
ODBCAdmin * * *

データタイプ .

タイプ DB2 Oracle SQLServer MySQL SQLite Access Anywhere Firebird Memo
VARCHAR 12 size Varchar2 * size/n * size size size
ARRAY 12 size/n*i
WVARCHAR -9 Name size(notnull)
NVARCHAR * size(notnull)
CHAR 1 size * * size/n
text(255)
Longvarchar(65k)
Long(255) Bug?
WCHAR -8 Text/Longvarchar size
NCHAR * Text/Longvarchar size
BIT -7 size=1 size=16 *
-7 Flag
TEXT -1 medium/tiny BLOB Text
longchar BLOB Text
LONGVARCHAR -1 * * * * BLOB Text
-370 XML BLOB Text
-99 CLOB BLOB Text
WLONGVARCHAR -10 ntext,varchar(max)
-10 xml* *Native client size=0
VARBINARY -3 BLOB
BINARY -2 BLOB
LONGVARBINARY -4 image * BLOB
-4 * *Native client
LONGBINARY -4 * *
-98 * * BLOB
BIGINT -5 * * Unsignedあり
INTEGER 4 * * medium * * * *
TINYINT -6 * *
SMALLINT 5 * * * * *
NUMERIC 2 size/scale size/scale
DECIMAL 3 size/scale *(Number) money size/scale
DOUBLE 8 * * size=8
FLOAT 6
REAL 7
TIMESTAMP 11 * * * *
DATETIME 11 *
93 *
DATE 9 * *
91 *
93 * datetime
TIME 10
92
GUID -11 uniqueid
  • * Check or Comment, 空欄: 対象外/未確認 X:未サポート
  • size/n: Charsetにより変動

メモ .

Oracle InstantClient

install
> odbc_install JA
> set NLS_LANG=JAPANESE_JAPAN.JA16SJIS /JA16SJISTILDA
UTF-8
> set NLS_LANG=.AL32UTF8

DB2

UTF-8
>db2set DB2CODEPAGE=1208
Restart
> db2 terminate
> db2stop
> db2start

SQL Anywhere

UserID: dba Passwaord: sql
Database file: \Samples\demo.db

Deplyment ウイザード
dblgen11.dll – Eror: 2356

Wine: MySQL Manual install

>wine cmd
>myodbc-installer -d -a -n "My SQL ODBC 5.1 Driver" -t "DRIVER=myodbc5.dll;SETUP=myodbc5S.dll"

Wine: Pending

DB2 : Program error : odbcad32.exe
Oracle : エラーコード126
SQLServer: ConnectionOpen エラー: SQLState = 01000 SQL Server = 11002

Cache: Pending etc

_SYSTEM User/Password – システム管理 – セキュリティ- ユーザ
Port : 1972
Select * From "Person" 結果:
[Cache ODBC][State : 42S02][Native Code 30]
[SQLCODE: <-30>:<テーブルまたはビューが見つかりません>]
[Location: <Prepare>]
[%msg: < テーブル SQLUSER.PERSON が見つかりません>]

SQLServer2008 ODBC設定 .

Native Client

<BfitSoft>\bin

  • sqlncli10.dll
  • sqlnclir10.rll
Driver={SQL Server Native Client 10.0}
Database=AdventureWorks 
Server=Server\SQLEXPRESS
@Charset=ANSI
MDAC





参考 .

DB2

Download DB2 Express-C
http://www-01.ibm.com/software/data/db2/express/download.html?S_CMP=DWJAPAN&S_TACT=DWJPEXPC
IBM Data Server Runtime Clients
DB2 Express-C 9.5 for Windows クイックインストール
http://www.ibm.com/developerworks/jp/offers/db2express-c/installwin_v95/

Oracle

Oracle Database 10g Express Edition 10.2.0.1 Downloads
http://www.oracle.com/technology/software/products/database/xe/index.html
Oracle Database 10g Instant Client 10.2.0.3
http://www.oracle.com/technology/global/jp/tech/oci/instantclient/instantclient.html

SQLServer 2005

Microsoft SQL Server 2005 Express Edition
http://www.microsoft.com/DOWNLOADS/details.aspx?familyid=220549B5-0B07-4448-8848-DCC397514B41&displaylang=ja
Microsoft SQL Server Community Projects & Samples
SQL Server 2005 SP2a
http://www.codeplex.com/MSFTDBProdSamples/Release/ProjectReleases.aspx?ReleaseId=4004
Microsoft SQL Server Management Studio Express
http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=c243a5ae-4bd1-4e3d-94b8-5a0f62bf7796#filelist

SQLServer 2008

Express with Advanced Services 64bit
http://www.microsoft.com/japan/sqlserver/2008/default.mspx
SQL Server Native client
http://msdn.microsoft.com/ja-jp/data/aa937733.aspx
http://msdn.microsoft.com/ja-jp/library/ms131002.aspx
SQL Server Native Client での接続文字列キーワード
http://technet.microsoft.com/ja-jp/library/ms130822.aspx

SQLite

SQLite Version 3.7.5
http://www.sqlite.org/
SQLite ODBC Driver
http://www.ch-werner.de/sqliteodbc/

SQL anywhere 11

http://www.ianywhere.jp/dl/dl_evl.html
http://dcx.sybase.com/dcx_home.html

Firebird.

IBPhoenix Open Source ODBC Driver
http://www.ibphoenix.com/main.nfs?a=ibphoenix&page=ibp_60_odbc

H2 Database Engine

http://www.h2database.com/
H2 DB Engine インストール・設定 技術メモ
http://homepage2.nifty.com/yoks/TechNote/H2/H2_MnFrm.htm
GROUP SESSION – 技術情報
http://www.gs.sjts.co.jp/v3/tec/about_h2db.html

PostgreSQL

http://www.postgresql.jp/
File Browser
http://www.postgresql.org/ftp/odbc/versions/msi/
ODBC – msi
http://www.postgresql.org/ftp/odbc/versions/msi/

Microsoft Data Access Components (MDAC) 2.8

http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=6c050fe3-c795-4b7d-b037-185d0506396