ブログ

OLE DBはアカン。

2012年11月15日 12:34 | 超科学戦隊オレ一人 | | 2,414 views

このエントリーをはてなブックマークに追加
はてなブックマーク - OLE DBはアカン。
reddit にシェア
Pocket
LINEで送る

OLE DBはアカン。

お試しで開発しているシステム(VB.NETアプリケーション + SQL Server Express)がありまして、
ふとしたことから、アプリケーションとデータベースのマシンを分けてみたところ、

以下のようなエラーが出た。

[DBNETLIB][ConnectionOpen (Connect()).]SQL Server が存在しないか、アクセスが拒否されました。

ナンスカソリャ?

接続文字列の、ユーザー名とパスワードが間違えたかな、と思って確認してみたところ、
同じようにエラーになる。

ナンスカソリャ?

アプリケーションとデータベースが同じマシンである場合は、エラーにならない。
アプリケーションとデータベースが異なるマシンである場合、必ずエラーになる。

意味が分からん。

む!ファイアウォールが邪魔しとんのか?
む?ポートか!ポートとかいうやつを解放したったらええのか?
ほな解放じゃ!このクソボケ!オリャア!(o・曲・)=>>> ブシュ!

と、あちこち穴あけてみたけどやっぱりダメでした。
そりゃダメでしょうよ。

まったく進展がないまま2時間くらい経ったところで、
ためしに他人が作ったアプリケーションで同じ実験をしてみたところ、いけた。

ということは、つまり、アプリケーションの問題。
さらにいうならば、ワシのコーディングに問題があるということです。

バカナ。

ワナワナしながら、他人のコーディングとワシのコーディング、
いったい何が違うのかを調べてみたところ・・・ゴクリ。

なんと、
データアクセスに使ってるAPIが違った!

SqlClient →エラーにならない
OLE DB → エラーになる

つまり、OLE DBはアカンちゅうことです。
なんでアカンのかは、まったくわからんし、知りたくもないですので、
OLE DBがらみのコードを、全部SqlClientに書き換えて、一件落着とした。

OLE DBはアカン、そもそも名前がアカン。
OLE DB(オレ・デブ)

プークスクスクスクス(o´・∀・)y~