接続文字列の使用
接続文字列には、データ ソースに対するパラメータとして渡される初期化情報が含まれています。接続文字列は、設定されると直ちに解析されます。構文エラーはランタイム例外を生成しますが、その他のエラーは、データ ソースが接続文字列内の情報を検証した後に検出されます。検証が終わると、データ ソースは接続を可能にするさまざまなオプションを設定します。
接続文字列キーワード
接続文字列の形式は、キーと値のパラメータのペアをセミコロンで区切ったリストです。
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」です。
急いだから、今日はここまでまとめます。