• 締切済み

データベースへの接続方法(どれがよいのか?)

VB.NETを使用して、SQLServer(2000 or 2005)やORACLE(8 or 9 or 10)に接続しようと思います。 VB.NETの場合、下記の4つの方法(私はこれしか分かりません)がある と思うのですが、どれで接続した方がよいのでしょうか? (総合的にどれがよいのかを知りたいのです) 質問が抽象的すぎて申し訳ありません。 ---------------------------------------------------------------------------------- ◎ = 推奨 ○ = まあまあ推奨 △ = あまり推奨しない × = 接続できない ? = 不明 1つ目: ADODB.Connection(SQLServer=○、ORACLE=○) 2つ目: System.Data.SqlClient.SqlConnection(SQLServer=◎、ORACLE=?) 3つ目: System.Data.OleDb.OleDbConnection(SQLServer=○、ORACLE=○) 4つ目: System.Data.Odbc.OdbcConnection(SQLServer=○、ORACLE=○)

みんなの回答

回答No.1

相手が SQL Server なら SqlConnection を選択。 Oracle なら ODP.NET または OleDbConnection を選択。 Oracle の場合、作成したアプリが動く場所や配布規模や配布方法によって ODB.NET と OleDbConnection のどちらを使うかを分けてます。 アプリケーションから見て、DBMS の種類を問わない仕組みを作りたいのであれば、汎化と特化の線引きをどこにするかは自由かと。 単に DSN に接続情報を必要数だけ登録しておけば DB の切り替えができるってレベルまで落としたいのであれば OleDbConnection ですかね。 (DBMS によってできること、できないことの考慮は別として)

関連するQ&A

  • SQLSERVERの接続方法を教えて下さい

    Visual Studio C# Windows CE環境でSQLSERVERに接続する方法を教えて頂きたいです。 System.Data.SqlClient.SqlConnection cSqlConnection = new System.Data.SqlClient.SqlConnection("接続文字列"); cSqlConnection.Open(); とすると実行時にエラーになります。

  • VB.NET Orcale接続文字列の記述方法

    お世話になります。 VB.NETの初心者です。 VB.NET2003とOrcle10gにて開発を行っております。 VBよりADOでOrcleへ接続する際、接続文字列に記述方法に悩んでいます。 Data Sourceに「ODBC設定したデータソース名」を記述することで接続はできるのですが・・。 本番時にODBC設定をユーザが嫌がる為、直接、サーバアドレスを指定し接続にいかせたいと考えています。(ODBCを使わない) この際の接続文字列の記述方法を御指導下さい。 宜しくお願い致します。 以下、ソース Imports System.Data.OleDb Dim Cn As OleDb.OleDbConnection Cn = New OleDb.OleDbConnection("Provider=MSDAORA.1;Data Source=TEST;User Id=TESTID;Password=TESTPASS; ") Cn.Open()

  • データベースの接続方法について

    データベースの接続方法について勉強しています。 ADOやDAO,ADODB,OLDDBやODBC等調べていて混乱しています。 上記について分かり易い書籍をご存知でしたら教えていただけませんでしょうか。 現在使用している環境は ・SQLserver2005 ・VB 2008 です。

  • VB.NETからのMDBへのデータ接続について教えてください。

    またまたお世話になります。 いろいろ教えていただきながらほとんど出来上がって今最後のログオン部分を作成中です。 VB.NET2003、アクセス2000使用です。 参考にしている本がAccess使いではなくMSDEを使用しているため、データ接続の部分が毎回違っています。 各フォームなどでは余り気にせずに進めたのですが、このログオン処理のところだけ引っかかって進むことが出来ません。 データリンクプロパティでAccessの場合はMicrosoft Jet4.0 OLE DB Providerを指定しなければならないようですが、この場合、Oledbconnectionが作成されます。 MSDEの場合、Sqlconnectionが作成されSQLは以下のように書かれます。 Dim cmd As Sqlclient.Sqlcommand = Sqlconnection1.CreateCommnad() Dim dr As SqlClient.SqlDataReader 'コマンドのコネクション設定 cmd.Connection = SqlConnection1 'コネクションを開く SqlConnection1.Open() OledbConnectionを使って書くにはどういう修正をしたらいいのか、ご教示いただきたくお願いします。

  • ADO.NETでOracleへの接続について

    ADO.NET(VB2005)でoracle9iに接続したいのですが、 標準データプロバイダのSystem.Fata.OracleClientが 出てきません。 何か、特別な参照をさせる必要があるのでしょうか? ちなみに、SQLサーバー用のSystem.Data.SqlClientは 出ています。 宜しく御願いします。

  • SQLで同じDBに対し2つのコネクションをもてる?

    SQLServer2005ExpressEditionとVB.NETで、ひとつのDBに対して、コネクションを2つ持つことは可能ですか?または、問題などおこりませんか? 以下のような感じでやってみたところ、両方ともに接続はできましたが、何か問題をはらんでいないかお気づきの方いらっしゃいましたらご教示いただけると助かります。 ' 接続文字列を生成する Dim stConnectionString As String = "接続情報" ' SqlConnection の新しいインスタンスを生成する (接続文字列を指定) Dim cSqlConnection As New System.Data.SqlClient.SqlConnection(stConnectionString)   Dim cSqlConnection1 As New System.Data.SqlClient.SqlConnection(stConnectionString) ' データベース接続を開く cSqlConnection.Open() cSqlConnection1.Open() ' 実処理   ・   ・   ・ ' データベース接続を閉じる cSqlConnection.Close() cSqlConnection.Dispose() cSqlConnection1.Close() cSqlConnection1.Dispose()

  • 共通モジュールでDBへの接続と利用方法

    VB.net のモジュールの引数にについての質問です。 やりたい事はSQLServerへの接続およびSELCT文を実行させることです DB側へのセッションをモジュールで作成し、 それを元に、他のモジュールやクラスファイルで selectやinsertを動かしたいと思っていますが、うまくいきません 「ExecuteReader には接続が開かれていて使用可能なことが必要です。 現在の接続の状態は終了です」というエラーが出てしまいます。 おそらく戻り値のあたりがおかしいのかなと思うのですが、 解決策がわかりません。 Module Connect Dim cn As System.Data.SqlClient.SqlConnection Public Function Connection() Try cn = New System.Data.SqlClient.SqlConnection() 'SQL Server認証を利用して接続 cn.ConnectionString = _ "Data Source = " & ServerName & _ ";Initial Catalog = " & DBName & _ ";User ID = " & UserID & _ ";Password = " & password 'Windows認証を利用して接続 'cn.ConnectionString = _ ' "Data Source = " & ServerName & _ ' ";Initial Catalog = " & DBName & _ ' ";Integrated Security = SSPI" cn.Open() MessageBox.Show("接続されました") Catch ex As Exception MessageBox.Show(ex.ToString) End Try Return cn End Function End Module Public Sub ExecuteReaderTest() Try Dim cn As New System.Data.SqlClient.SqlConnection Connection() Dim hCommand As System.Data.SqlClient.SqlCommand = cn.CreateCommand() hCommand.CommandText = "SELECT ~~ " Dim cReader As System.Data.SqlClient.SqlDataReader = hCommand.ExecuteReader() hCommand.Dispose() ......

  • VS2010 SqlServer 接続

    VisualStudio2010を使用しています。 MFCアプリケーション(DLL)化をして作成中。 言語はVC++を使っています。 下記のような構文を作成するとSYSTEMの構文でエラーになってしまいます。 エラー内容 : "定義していない識別子です"とエラー表示   CString stConnectionString; stConnectionString += "Data Source = ServerName;"; stConnectionString += "Initial Catalog = Northwind;"; stConnectionString += "Integrated Security = SSPI;"; System.Data.SqlClient.SqlConnection cSqlConnection = ( new System.Data.SqlClient.SqlConnection(stConnectionString) ); cSqlConnection.Open();   - - - 処理 - - - cSqlConnection.Close(); cSqlConnection.Dispose(); systemの定義はどのようにすればよいのか、調べてる最中です。 VBでは上手く接続できるのに、VC++では上手く接続出来ないので、説明があるようなサイトなどありましたら教えて下さい。 よろしくお願いします。

  • RDO OLEDB接続は可能なのか

    ADO+ODBC接続は作れました、ADO+OLEDB接続も作れました、RDO+ODBC接続も作れました 残すは、RDO+OLEDB接続なのですが、これだが作れません 接続例を知っている方がいらっしゃいましたら ご教授よろしくお願いいたします もともとRDO自体が推奨がODBCだから出来ないのは当たり前なのかな と思い始めてます、出来ないなら出来ないという回答でも助かります

  • VB.NetでSQLServer2005に接続できません。教えてください。

    はじめまして。初めて投稿します。 かなり困っているので、誰か助けてください。 内容はVB.Net2003を使用して、SQLServer2005に接続するときに 「SSPI コンテキストを生成できません」のエラーが発生してしまいます。 SQLServer2005をインストールしているのがサーバーではなく クライアント(プログラムを実行している端末)なので、 それが原因だと思うのですが、どうしてもその環境でしなくてはいけないので 何かご存知の方がおられるのなら、ご教示お願いします。 ソースは以下のとおりです。 ↓ Dim Scn As SqlClient.SqlConnection = New SqlClient.SqlConnection '接続文字列セット Scn.ConnectionString = _ "Server=""(local)"";Integrated Security=SSPI;database=" & データベース名 'dbオープン Scn.Open() ←このタイミングでエラーが発生

専門家に質問してみよう