Q10:接続方法によってSMALLDATETIME型のデータがうまく取得できない。
Q10-1:
現在、接続方法によって値が取得できたりできなかったりで悩んでおります。
詳細を示します。
-----------------------------------------------------------------------
データベース:SQL Server 2005 Express Edition
[接続方法JDBCの場合]
□日付型----・datetime型 :○
・smalldatetime型:×(エラーが出る)
□文字列型--・nvarchar :○
[接続方法ODBCの場合]
□日付型----・datetime型 :○
・smalldatetime型:○
□文字列型--・nvarchar :×(エラーは出ないが空白になる)
------------------------------------------------------------------------
最終的に接続しようとしているデータベースがTCPを許可しない設定になっているので、できればODBC接続で文字列型を取得できるようにしたいのですが、パッチを当てるなどして対応できないものでしょうか?
あとODBC接続で「ファイルDSN」を使用して接続したいのですが、データソース設定の「jdbc:odbc:」から先の記述方法が分からないのでご教授お願いします。
(現在はユーザーDSNで接続しています。)
A10-1:
MZPlatformからデータベースに接続する場合、JDBC接続をお奨めしております。
JDBC接続時に、SMALLDATETIME型のデータがうまく取得できないという問題は[データベースアクセス]コンポーネントの型変換テーブルに「SMALLDATETIME型→java.util.Date型」変換する記述を追加することによって解決できました。
本文末尾の関連ファイルの「データベースアクセス(型変換あり).mzax」に型変換の接続を付け加えて、SMALLDATETIME型のデータを取得できるようにしたものを掲載致します。
また型変換テーブル取得、設定をした際のメソッドが分かるファイルもご参考までに関連ファイルに掲載致します。
ODBC接続の場合も検討いたしましたが、ODBC−JDBCブリッジドライバーの性質上、nvarchar型のデータが取得できません。MZPlatformを使用してODBC接続は不可ということになります。
ご参考までに「ファイルDSN」代わりに「DSN-less」という方法があるようです。
但しMZPlatform上での接続確認はできておりません。
よろしければ今一度SQLServer2000の「SQLクライアント設定ユーティリティ」からTCP/IPソケットの設定をご確認下さい。
また、サーバー名の代わりにIPアドレスを指定してのJDBC接続もお試し下さい。
<参考URL>
「SQL Server のインスタンスが特定の TCP ポートまたは動的なポートで受信待ちするように構成する方法」
http://support.microsoft.com/kb/823938/
関連ファイル:データベースアクセス(型変換あり).mzax、MappingTable適用.mzax (※このファイルは、ZIP形式に圧縮してあります。)