- ベストアンサー
SQLServerへのODBC接続について。
VB2005、SQLServer2005環境です。 SQLServerへODBC接続を行う、共通的に使用するクラスを作成しています。 今までは、接続文字列の設定を記述したiniファイルがあって、 そこから読み込んで…という手順で接続していたようですが、 今回は、クライアントPCにはODBC設定をしないそうです。 あまり詳しくないので、情報が断片的で申し訳ないのですが、 OS標準のドライバを指定することで、接続文字列取得用の iniファイルなどがなくても接続できるそうなのですが、探しても そのようなやり方が見つからず、困っています。 (だいたいがiniファイルから読み込む形式です) 漠然とした質問で申し訳ありませんが、このドライバを指定して 接続する方法を教えていただけないでしょうか? 宜しくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
iniファイルで接続文字列を形成していた時と同じです。 接続文字列が定数になるので、ファイルを読んで文字列を操作しなくなるだけです。 オブジェクトが何か分からないのですが、接続を開く所か、DBを開くあたりだと思います。
その他の回答 (4)
- nda23
- ベストアンサー率54% (777/1415)
データソースはODBCの決まりきった接続の定義と考えてよいでしょう。 ODBCアドミニストレータで、接続先から詳細な設定までしたものを 例えばAAAと名前を付けておきます。これがデータソースです。 プログラムは接続文字列として、「DSN=AAA;」と指定します。 ドライバがどうの、サーバが何処だ、パスワードは何だ、は不要です。 サーバのIPアドレス等が変わった場合はODBCアドミニストレータで データソースを修正するだけで、プログラムの変更はありません。 一見、便利なようですが、変更があると大変なので、普通はiniファイルを 使います。下記条件の場合はデータソースもアリかも知れません。 (1)クライアントPCが少ない (2)利用者がド素人で、iniファイルの頒布は不安 (3)利用者が専門家で、データソースを自力でメンテできる
補足
回答ありがとうございます。 仰るとおり、プログラムで接続文字列としてデータソースを 指定する方法がそうだと思います。 度々申し訳ないんですが、DSN=AAAの具体的な記述については、 どのメソッドを使用すれば良いのでしょうか?
- K-Sogacchi
- ベストアンサー率53% (50/93)
>今回は、クライアントPCにはODBC設定をしないそうです とあるので、とりあえず、ODBC DSNは設定せずに接続するのかと推測します。 その場合の接続文字列は、例えば以下のような形になります。 "Driver={SQL Server};Server=サーバ名等;Uid=ユーザID;Pwd=パスワード;Database=DB名" しかし、この形の接続にしても、外部から何らかの形で、サーバ名等の 情報を与えないと、アプリ内部で接続情報を抱え持たずに接続するのは 無理だと思います。 (App.configとか使うにしても、外部から設定するようなものだし) あと、当然ながら、この場合は根本的に、最初に書かれている 「SQLServerへODBC接続を行う」という件には反します。 …あ、待てよ? 「クライアントには」ODBC設定しない…となると、No.2で書かれてるように Webアプリ等の可能性もあるのか… でも結局、今やりたいことは、 DBに接続する事なんですよね。となるとクライアント云々は関係ないかもしれないし… まずは、接続するのに必要な情報について、どのような情報が、どのような形で 取得可能なのか挙げてみれば、回答も しやすいかもしれません。 あと、結局ODBC接続をするのか、そうでないのか等も、明確にした方が良いかと。
補足
回答ありがとうございます。 情報が曖昧で申し訳ないです。 ODBC接続については行います。 おそらく、iniファイルに設定を書かない=クライアントPCに… という話のようです(汗)。
- nda23
- ベストアンサー率54% (777/1415)
>クライアントPCにはODBC設定をしないそうです。 (1)クライアントにはODBCをインストールしない→直接DBを操作しない。 (2)クライアントにODBCをインストールするが、iniファイルは使わない。 どっちなんでしょう? 前者だと、Webアプリケーションみたいなアプローチですかね。 後者ですとデータソースを使用するのではないかと思います。
補足
回答ありがとうございます。 おそらく、後者2だと思います(曖昧ですいません)。 ODBCデータソースアドミニストレータで、標準のドライバに SQL Serverが入っていますが、それを指定する?というような ことだと思うんですが…。 データソース使用について、詳しく教えていただけないでしょうか?
- kikujack
- ベストアンサー率47% (17/36)
接続文字列は Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;
お礼
ありがとうございます。 大変参考になりました。