你笑的时候全世界陪你一起笑,你哭的时候只有你一个人哭

使用Robot连接SQL的例子

上一篇 / 下一篇  2006-12-12 15:17:27 / 个人分类:Rational Robot 技术

这是使用Robot连接TestDirector数据库的一个例子。

首先在控制面板的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中查询分析器查询后的结果。

如果我生明了两个二维数组即可保存不同的查询结果。

其读取查询内容的函数也应该重点看看。

如果想要返回不同的查询语句结果,应该这样写:

=================================================================================

SubMain

   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


TAG:

dionysus的个人空间 引用 删除 dionysus   /   2006-12-13 23:17:41
关于动态数据库得到的查询内容注释有错误,一维应该是列,二维应该是行,请运行这个脚本的朋友注意一下,谢谢
 

评分:0

我来说两句

Open Toolbar