目次

SQL

DBMS独自の

などが使用されている場合は修正が必要になります。

基本的な構文でも

などがあります。

また、

などに違いがあります。

このため、クロスDBの際は、SQLを外部ファイル化し、
DBによって切り替える等の方式が良いかと思います。

ADO.NET

ADO.NETは、

などと同じくAPIのインターフェイスはある程度標準化されています。

ただし、

と異なり、内部で使用するドライバを切り替えるスタイルではなく、
ベンダ毎に別々のデータプロバイダ(バイナリ)を提供しています。

それぞれ名前空間.クラス型が異なるため、以下に列挙した
汎用型等を使用してプログラミングする必要があります。
#若しくは、自前のDB部品等でラッピングする等の対策を取る必要があります。

JDBCと比べるとADO.NETの方が、

が多く、クロスDB対応には注意が必要です。

特にHiRDBのプロバイダ(pddndp20.dll)が
他のメジャーなDBMSのプロバイダと異なり、

などがあり、クロスDB対応を困難にしています。

型のマッピング

特に、SELECTした結果セットの取得時、
DBMS型と.NET(やJava)のネイティブ型とのマッピングが異なるので、
プログラム側でキャストやコンバートのコード記述が必要になる場合があります。

主に以下の型のマッピングが問題になることがあります。

また、例えばODP.NETなどでは、
OracleのNumber型のサイズによって
.NETのネイティブ型へのマッピングが変わってきます。

分離レベル

DBMSによってロック・分離戦略が異なるので注意する。


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS