接続文字列の使用

接続文字列には、データ ソースに対するパラメータとして渡される初期化情報が含まれています。接続文字列は、設定されると直ちに解析されます。構文エラーはランタイム例外を生成しますが、その他のエラーは、データ ソースが接続文字列内の情報を検証した後に検出されます。検証が終わると、データ ソースは接続を可能にするさまざまなオプションを設定します。

接続文字列キーワード
接続文字列の形式は、キーと値のパラメータのペアをセミコロンで区切ったリストです。
keyword1=value; keyword2=value

スペースは無視されます。データ ソースに従って値の大文字と小文字が区別されていても、キーワードでは大文字と小文字が区別されません。セミコロン、単一引用符、または二重引用符を含む値を追加するには、値を二重引用符で囲む必要があります。

有効な接続文字列の構文はプロバイダによって異なり、ODBC のような初期の API から長年にわたって進化しています。.NET Framework Data Provider for SQL Server には、古い構文の要素が多数組み込まれており、一般的に、共通の接続文字列の構文に対して柔軟性があります。.


Ⅰ、SQL SERVER編
  1、連続文字列
    <ConnectionString>
     <SQL_SERVER>
       <Provider>SQLOLEDB.1</Provider>
       <Persist_Security_Info>False</Persist_Security_Info>
       <!--<Persist_Security_Info>SSPI</Persist_Security_Info>-->
       <User_ID>sa</User_ID>
       <Password></Password>
       <Initial_Catalog>NorthWind</Initial_Catalog>
       <!--<Database>NorthWind</Database>-->
       <Data_Source>(local)</Data_Source>
       <!--<Server>(local)</Server>-->
      </SQL_SERVER>
    </ConnectionString>

    2、ADOのオブジェクト(今回のテーマ)
      ADODB.Connection
      ADODB.Command
      ADODB.Recordset
   

     常用なプロパティ、メソッド
   Dim conn As ADODB.Connection
     Dim cmd As ADODB.Command
     Dim rst As ADODB.Recordset

     ①、Connection
     conn.ConnectionString
     conn.ConnectionTimeout
     conn.CommandTimeout

     conn.Open
     conn.Execute
     conn.Close
     
     '事務
     conn.BeginTrans
     conn.RollbackTrans
     conn.CommitTrans

     ②、Command
     cmd.ActiveConnection
     cmd.CommandText
     cmd.CommandType
     cmd.CreateParameter
     cmd.Execute
     
     ③、Recordset
     rst.ActiveConnection
     rst.ActiveCommand
    
     rst.Open
     rst.MoveNext
     rst.Move
    
     rst.EOF
     rst.BOF
     rst.Fields.Item (Index)
     rst.Fields.Count
     

    3、「.RecordCount」の制限
    VB6を例で、記入します。
    'import 「Microsoft ActiveX Data Objects 2.5 Library」

    Private Sub Command1_Click()
        Dim strConn As String
        Dim strSql As String
        Dim rsd As ADODB.Recordset

    strConn = "Provider=SQLOLEDB.1;Persist Security Info=False;" & _
            "User ID=sa;Password=sa;Initial Catalog=Northwind;Data Source=."          
    strSql = " select * from Customers "

    Set rsd = New ADODB.Recordset
   rsd.CursorType = adOpenStatic       
    rsd.Open strSql, strConn
    
'    Do While Not rsd.EOF
'        DoEvents
'        Debug.Print rsd.Fields(0).Value
'        rsd.MoveNext
'    Loop


    MsgBox rsd.RecordCount      
End Sub

    注意: .CursorType = adOpenStatic  このプロパティの設置は「RecordCount」にとって、重要です。設置しないと、「RecordCount」の値は「-1」です。
    「.CursorType = adOpenStatic 」を設置した場合、たとえ「strSql = " select * from Customers where 1=0 "」にして、即ち、Recordがない場合、.BOF、.EOFはTrueで、RecordCountは「0」です。
    設置しない場合、Recordがないと、.BOF、.EOFはTrueで、RecordCountは「-1」です。
  それに、Recordが有っても、RecordCountは「-1」です。

  急いだから、今日はここまでまとめます。