1. 連接
采用ADO連接數(shù)據(jù)庫的方式,建立應用程序和數(shù)據(jù)庫的連接。具體代碼如下:
Set Cnn = ("ADODB.")
Sub (ByVal )
On error Next
Dim ,rel
Dim ,,,,
'從配置文件中獲取數(shù)據(jù)庫類型,名,用戶名,用戶密碼,數(shù)據(jù)庫名
= (, "", "")
= (, "", "")
= (, "", "")
= (, "", "")
= (, "", "")
Case
Case 0 'Sql
= "=;={SQL };="&&";="&&";Uid="&&";Pwd="&&";"
Case 1 '
= "=.1;Data ="&&";="&&";User; Info=True"
Case 2 '
= "={ 11};Srvr="&&";Uid="&&";Pwd="&&";="&&";"
Case 3 '
= "={ (*.mdb)};Dbq="&&";Uid="&&";Pwd="&&";"
End
Cnn.Open
' 獲取連接結果信息
rel = ()
If rel = true Then
"數(shù)據(jù)庫連接失敗,中止!"
On Error GoTo 0
Exit Test
Else
"數(shù)據(jù)庫已建立連接! = " & ,
End If
End Sub
2. 檢查數(shù)據(jù)操作失敗
()
Dim
If Cnn..Count > 0 Then
For Each In Cnn.
If . 0 Then
"數(shù)據(jù)庫操作失敗:" &. ,
= true
End If
Next
Else
= false
End If
End
3. 執(zhí)行數(shù)據(jù)庫操作語句
(ByVal )
On error next
Dim rel,Rst
Dim
Dim i,j,n
' 設置結果集
Set Rst =("ADODB.")
= LTrim()
' 判斷是查詢語句還是執(zhí)行語句
If Left(,6)="" Then
Rst.open , Cnn
If () = True Then
rel = -1
"查詢語句 "&& " 發(fā)生錯誤!",
Else
IF Rst.EOF THEN
rel = 0
"查詢語句 "&& " 無返回值!",
Else
i = 0
' 將查詢結果保存到動態(tài)中
For each in Rst.
i = i+1
.(" "). .name,""
Next
n=0
While not Rst.EOF
n=n+1
For j = 0 to i-1
. n
.Value( Rst.(j).name,"SQL ") = Rst.(j).value
Next
Rst.
Wend
rel =.("SQL ").
"查詢語句 "&& " 返回"&rel&"條結果,保存于 ",
End if
End If
Else
'執(zhí)行非查詢語句
Rst.open , Cnn
If () = True Then
rel = -1
"執(zhí)行語句 "&& " 發(fā)生錯誤!",
Else
rel = 1
"執(zhí)行語句 "&& " 成功!",
End If
End If
'返回值: -1,sql語句執(zhí)行錯誤
' 0,查詢sql沒有有結果返回
' >0vb連接數(shù)據(jù)庫的方法,查詢sql有結果時為結果集記錄數(shù),
' 非查詢sql執(zhí)行成功 ,值為1
=CInt(rel)
Rst.close
End
4. 執(zhí)行數(shù)據(jù)庫腳本、
Sub (ByVal ,ByVal )
Dim
Dim
Dim rtn
Set = (".shell")
If =1 Then ‘
=" /nolog" & " @"&
=2 Then ‘vb連接數(shù)據(jù)庫的方法,此處用戶名和密碼,數(shù)據(jù)庫名寫死,根據(jù)需要可采用從
配置文件讀取的方式
="isql - - -S "& &" -i "&
End If
‘依次執(zhí)行語句
rtn=.run(,1,true)
'wait 1
'. "exit~" ‘此處根據(jù)腳本是否包含退出語句決定是否需要
Set Shell =
if rtn = 0 then
,
else
. & "got Error :" & rtn,
end if
End Sub