数年来Sybase SQL Anywhere使ってますが、そういえばODBC接続をする機会がありませんでした。 国内で利用がほぼ無いのでしょうが、Sybase SQL AnywhereへのODBCドライバー入手に関する資料は本当に少なく悲しくなります。 記事を書いている2012/Dec/12でも、詳しくはWebへを利用しても残念な結果になるばかりです。 無いなら自分で探すしかありません。需要はないのでしょうが、自分の備忘録代わりにSybase SQL AnywhereのODBC導入手順を紹介しておきます。
定番サイトはどうなのか
相変わらず、Sybase(SAP)のHPを見るのは辛いものがあります。HPがとてつもなく重いし…見難いので探す気になれません。
また、国内でも数少ないSybase SQL Anywhereを扱っていらっしゃるiAnywhere社のHPもなかなか揃っていらっしゃるのですが、やはりソフトウェアを入手で出来ていることを前提にしており目的に合致しません。
iAnywhere社HPのSQL Anywhere Microsoft .NET開発者センター向けページ
一応iAnywhere社の資料のSQL AnywhereへのODBC接続資料はあります。が、当然のようにODBCドライバーの入手方法について紹介がありません。
SQL Anywhere Mobile Link の推奨 ODBC ドライバー
Sybase Adaptive Server Enterprise(ASE)のODBCドライバー入手とODBC接続
本記事を書いている2012/Dec/12時点でも、Sybase Adaptive Server Enterprise version 15.5であればODBC記事はあります。
記事では、Adaptive Server Enterprise version 15.5 Developer's Editionですが、現在(2012/Dec/12)は、ASE 15.7になっています。 ASE15.7では記事にあるような以下のエラーは出ずに正常にインストールができます。
※というかファイル構成が変わり事前にインストールしようにもファイルがありません。
状況: エラー 追加メモ: エラー - UpdateSyInstallRegistryAction: Sybase Data Source Administrator と は必要ですが、インストールされていません。 状況: エラー 追加メモ: エラー - UpdateSyInstallRegistryAction: Language Modules と は必要ですが、インストールされていません。
しかし、上記の手順はあくまでもSybase Adaptive Server Enterprise用です。ASEのODBCドライバーでSybase SQL Anywhereにも接続できるかなというと、そうは世の中楽には行かず、Sybase SQL Anywhere DatabaseにASEのODBCドライバーでODBC接続できません。
※ODBC接続テストは通るのですが、接続を試みると以下のエラーではじかれます。
--------------------------- Adaptive Server Enterprise --------------------------- [Sybase][ODBC Driver][Adaptive Server Enterprise]ASA Error -157: Cannot convert 08/10/09 to a timestamp --------------------------- OK ---------------------------
諦めずに、Sybase SQL Anywhere DatabaseへのODBCドライバーを探します。
Sybase SQL Anywhere Database12.0.1のODBC接続ドライバー入手
日本での利用が少ないなら、利用の多い(?)海外を英語で探せばいいじゃない。 ということで、当初探す気を失ったSybase(SAP)の公式ページから以下の記事が見つかりました。 本記事時点で、SQL Anywhere Database Client(SQL Anywhere 12.0.1)が60日間の評判としてダウンロード可能です。
開発者登録すれば……みたいなのもありますが、60日使えれば上出来ですね。
対応OSは以下の通りです。
- Windows x86 and x64 - Linux x86 and x64 - Mac OS X for Intel - Solaris SPARC - Solaris x64 - HP-UX Itanium - IBM AIX
ダウンロード後のインストール
今回は、Windows 7 x64 Jpn(Eng言語パックインストール済み)の環境でドライバーをインストールします。
- Windows x64を選択してダウンロード
- 適当なパスにおいてインストーラーを実行
- インストーラーに従って必要なコンポーネントを選択、インストール
- インストールが完了
※ダウンロードしたインストーラーは約138MBでした。
接続可能なSybase SQL Anywhere Databaseバージョン
私のテストした機会では以下の通りです。
- Sybase SQL Anywhere Database 9.0
- Sybase SQL Anywhere Database 11.0
- Sybase SQL Anywhere Database 12.0
【ODBC接続のテスト】
WindowsのODBC接続をテストします。 1. スタートメニュー | コントロールパネル | 管理ツール | データソース(ODBC)を起動 英語OSの場合は: Start Menu | Control Panel | Administrative Tools | Data Sources (ODBC) 2. System DSNタブを選択 3. 追加(Add)から、SQL Anywhere 12を選択 4. ODBCタブで、データソース名、説明など必要なパラメータを入力 * ※データソース名は、ODBC接続一覧で識別するための名前。好きな名前にしても問題ありません * ログインタブで、認証、ユーザーID、パスワード、アクション、サーバー名、データベース名を入力します * ※データベースで接続先のSybase AnywhereへのDB接続認証方式を、DBユーザー認証かWindows統合認証を選び、ユーザーID/パスワードを入力 * ※アクションで、接続対象DBが稼働しているサーバーがローカルかリモート先かを選択 * ※サーバー名で、接続対象サーバーのIPやNetBIOSを入力。 ※データベース名で、接続対象DB名を入力 * ネットワークタブや詳細タブは、必要なパラメータがあれば入力 * 必要パラメータを入力したらODBCタブで接続テストを試みる 5. 接続できればハッピータイム開始 * 接続できなかったら?パラメータやバージョンが間違っていないか確認
※ちなみにSybase SQL Anywhereのデフォルト待ち受けポートは、TCP 2638です。
インストールされるモジュール
クライントとはいえ、サーバーとほぼ同様な内容がインストールされます。 Sybase使いならよく使うところでは以下でしょうか。(いずれもスタートメニューに入っています)
- Sybase Central (SybaseのGUI管理モジュール) - Interactive SQL (Sybaseの標準SQLエディタ)
※Interactive SQLは、もちろんインテリセンスもついているので、テーブル名の補完など便利ですよね。
SQLエディタでのODBC接続利用
もちろん、各種ODBC接続に対応したエディタでSybase SQL Anywhereに接続できるようにもなります。 例えば、定番有名ソフトのA5:SQL Mk-2 64bitでもADO(OLE DB, ODBC)から64bitシステムデータソースを列挙させてSybase SQL AnywhereへODBCが可能です。 インテリセンスはもちろん、SQL Edit、SQL比較、テーブルの閲覧も出来るため、これ1つで相当な操作が可能ですね。 以上で、Sybase SQL Anywhere DatabaseへのODBC接続手順説明は終了です。