scum 发表于 2012-1-25 19:26:21

MSSQL求助!

#Include <Array.au3>
;~ 要操作数据库,第一件事就是必须连接上数据库,连接MsSql可以使用Ado,AU3提供了函数ObjCreate来创建Com指定对象
;~ 具体如何操作看实例
$Err = ObjEvent("AutoIt.Error", "ODBCJET_ErroHandler") ;定义一个函数ODBCJET_ErroHandler收集对象的错误

Dim $ServerIP = '10.10.1.5', $ServerID = 'cyberfox', $ServerPwd = 'cyberfox' , $ServerDatabase = '';三个变量分别是连接数据库用的地址、账号、密码
$Conn = ObjCreate("ADODB.Connection");首先要建立ADODB.Connection类
$Conn.Open ("driver={SQL Server};server=" & $ServerIP & ";uid=" & $ServerID & ";pwd=" & $ServerPwd & ";database=" & $ServerDatabase)
If @error Then Exit
;如果程序没有退出,说明成功连接上了数据库

;连接成功后我们来读取数据
$Conn.Execute("use Counterdb") ;首先要指定一个需要操作的库,这里用系统自带的master库来操作
$RS = ObjCreate("ADODB.Recordset");创建记录集对象
$RS.ActiveConnection = $conn;设置记录集的激活链接属性来自$Conn
$RS.Open("select username from pc where pcno='3' ");执行Sql语句,这个语句是查询数据库中所有的库属性,并且按Name字段的数据进行排序
Dim $Select_Db = [];定义一个数组来接收查询到的数据
Dim $Count = 1;定义一个变量用来记录查询到的数据行数
While Not $RS.eof And Not $RS.bof;当记录指针处于第一条记录和最后一条记录之间时,执行while循环
      If @error = 1 Then ExitLoop
      If $Select_Db = 0 Then;当数组二维$Select_Db为0时,重定义数组的第二维大小等于记录集查询到的字段数
                ReDim $Select_Db[$RS.Fields.Count + 1];$RS.Fields.Count为记录集查询到的字段数
                For $i = 0 To $RS.Fields.Count - 1
                        $Select_Db[$i + 1] = $RS.Fields($i).Name;$RS.Fields($i).Name为字段名,把字段名存入数组
                Next
      EndIf
      ReDim $Select_Db[$Count + 1][$RS.Fields.Count + 1];数组第一维大小加1,用于存放数据
      $Select_Db = $Count;$Select_Db存放查询到的数据行数
      For $i = 0 To $RS.Fields.Count - 1
                $Select_Db[$Count][$i + 1] = $RS.Fields($i).Value;$RS.Fields($i).Value字段数据
      Next
      $Count += 1;行数加1
      $RS.movenext;将记录指针从当前的位置向下移一行
WEnd
$RS.Close;关闭记录集对象
MsgBox(1,"",$Select_Db)
_ArrayDisplay($Select_Db, "数据库所有库属性");显示数组求各位大哥帮帮我,如果把数据到入自己创建的ListView里啊!!

kk_lee69 发表于 2012-2-1 13:10:54

回复 1# scum
可以參考 這裡看看

http://www.autoitx.com/forum.php?mod=redirect&tid=30083&goto=lastpost#lastpost
页: [1]
查看完整版本: MSSQL求助!