首先在控制面板的ODBC中新建一個DSN,選擇SQL Server連接,名字是td_test(這個可以自己隨便。,連接服務器選擇你TD庫保存的DB服務器名稱。連接你想要查詢的庫名,我這里是gpt_gogs_db,登錄名是td,密碼tdtdtd(在TD中新建一個project時,數據庫默認所有者為td,密碼為tdtdtd),這里僅兩不要使用權限過大的用戶,因為在腳本中是要明文寫入密碼的。最后測試一下數據源。
開始編寫腳本了:
======================================================================
Sub Main
Dim Result As Integer
Dim connect as long
Dim outputstr,query as string
Dim out(1 to 2,1 to 16) as variant
'這里定義一個二維數組,第一維表示數據庫中查詢結果中的列,第二維表示查詢結果中的行,可以看到這里可以一次查詢并存儲兩行兩列
dim retcode as variant
dim i as integer
'Initially Recorded: 2005-7-18 22:16:12
'scrīpt Name: sqltest
connect = SQLOpen("DSN=td_test;UID=td;PWD=tdtdtd",outputstr)
'注意這里各個參數和等號及等號后面賦值是緊跟著的,沒有空格,因為如果有空格的話連接的時候連空格也算上
'這樣的話連接的時候就會提示選擇DSN或是輸入用戶名,密碼
query = "select bg_bug_id,bg_status from bug where bg_subject='113'"
'最好在查詢分析器中執行一下這條語句
call SQLExecquery(connect,query)
call SQLRetrieve(connect,out())
msgbox out(1,1)
msgbox out(2,1)
msgbox out(1,2)
msgbox out(2,2)
'顯示保存的結果
' next
call sqlclose(connect)
End Sub
=================================================================================
這里尤其注意那個設置二維數組的地方,這個二維數組可以一次存儲多個查詢結果,其結構就類似SQL Server中查詢分析器查詢后的結果。
如果我生明了兩個二維數組即可保存不同的查詢結果。
其讀取查詢內容的函數也應該重點看看。
如果想要返回不同的查詢語句結果,應該這樣寫:
=================================================================================
Sub Main
Dim Result As Integer
Dim connect as long
Dim outputstr,query1,query2 as string
Dim out1(1 to 2,1 to 1) as variant
Dim out2(1 to 2,1 to 1) as variant
'這里定義一個二維數組,第一維表示數據庫中查詢結果中的列,第二維表示查詢結果中的行,可以看到這里可以一次查詢并存儲兩行兩列
dim retcode as variant
dim i as integer
'Initially Recorded: 2005-7-18 22:16:12
'scrīpt Name: sqltest
connect = SQLOpen("DSN=td_test;UID=td;PWD=tdtdtd")
'注意這里各個參數和等號及等號后面賦值是緊跟著的,沒有空格,因為如果有空格的話連接的時候連空格也算上
'這樣的話連接的時候就會提示選擇DSN或是輸入用戶名,密碼
query1 = "select bg_bug_id,bg_status from bug where bg_subject='113'"
'最好在查詢分析器中執行一下這條語句
query2 = "select bg_bug_id,bg_severity from bug where bg_subject='113'"
'不同的查詢語句
call SQLExecquery(connect,query1)
call SQLRetrieve(connect,out1())
'執行完查詢語句后賦值給一個二維數組,切記!
call SQLExecquery(connect,query2)
call sqlretrieve(connect,out2())
msgbox out1(1,1)
msgbox out1(2,1)
msgbox out2(1,1)
msgbox out2(2,1)
'顯示保存的結果
' next
call sqlclose(connect)
End Sub
文章來源于領測軟件測試網 http://www.kjueaiud.com/