和歌山のプログラミング・システム開発ならシステムキューブ
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~