数年来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もなかなか揃っていらっしゃるのですが、やはり企業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記事はあります。
参考記事:uhyorinの日記: Sybaseに接続するためのWindows版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日間の評判としてダウンロード可能です。
SQL Anywhere Database Client Download
開発者登録すれば……みたいなのもありますが、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-1. ODBCタブで、データソース名、説明など必要なパラメータを入力します。
※データソース名は、ODBC接続一覧で識別するための名前です。好きな名前にしても問題ありません。
4-2. ログインタブで、認証、ユーザーID、パスワード、アクション、サーバー名、データベース名を入力します。
※データベースで接続先のSybase AnywhereへのDB接続認証方式を、DBユーザー認証かWindows統合認証か選び、ユーザーID/パスワードを入力します。
※アクションで、接続対象DBが稼働しているサーバーがローカルかリモート先かを選択します。
※サーバー名で、接続対象サーバーのIPやNetBIOSを入力します。 ※データベース名で、接続対象DB名を入力します。
4-3. ネットワークタブや詳細タブは、必要なパラメータがあれば入力します。
4-4. 必要パラメータを入力したらODBCタブで接続テストを試みます。
5. 接続できればハッピータイム開始ですね!! OKして楽しみましょう。接続できなかったら?パラメータやバージョンが間違っていないか確認しましょう。
※ちなみに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比較、テーブルの閲覧も出来るため、これ一つで相当な操作が可能ですね。
以上で、Sybase SQL Anywhere DatabaseへのODBC接続手順説明は終了です。