80107671 发表于 2012-7-9 19:58:24

请问怎么定义文中list中"cpqpn"栏位为变量,或者怎么导入到文本中?

如图中,怎么样才能把"cpqpn"这一列设为变量,因为我需要去与服务器中的odm.txt的文件中去做比对, 看是否服务器的odm.txt是否存在这些字串(L3-XXXXX-XXX, 或者H3-XXXXX-XXX), 我实在是不知道如何下手了! 请高手们赐教呀!#include <String.au3>

#Include <Array.au3>

;~ 要操作数据库,第一件事就是必须连接上数据库,连接MsSql可以使用Ado,AU3提供了函数ObjCreate来创建Com指定对象

;~ 具体如何操作看实例

$Err = ObjEvent("AutoIt.Error", "ODBCJET_ErroHandler") ;定义一个函数ODBCJET_ErroHandler收集对象的错误



Dim $sServer = '10.99.106.187', $sUsername = 'sa', $sPassword = 'sa' ;三个变量分别是连接数据库用的地址、账号、密码

$Conn = ObjCreate("ADODB.Connection");首先要建立ADODB.Connection类

$Conn.open("DRIVER={SQL Server};SERVER=" & $sServer & ";UID=" & $sUsername & ";PWD=" & $sPassword & ";");使用open方法连接数据库

If @error Then Exit

;如果程序没有退出,说明成功连接上了数据库



;连接成功后我们来读取数据

$Conn.Execute("use PCA_DB") ;首先要指定一个需要操作的库,这里用系统自带的master库来操作

$RS = ObjCreate("ADODB.Recordset");创建记录集对象

$RS.ActiveConnection = $conn;设置记录集的激活链接属性来自$Conn

$RS.Open("SELECT cpqpn,model,family,fis_code FROM PCA_MODEL WHERE (Company = 'LSI') AND (Udt > GETDATE() - 15)");执行Sql语句,这个语句是查询数据库中所有的库属性,并且按Name字段的数据进行排序

;$RS.Open("SELECT * FROM PCA_MODEL WHERE (Company = 'F1') AND (Udt > GETDATE() - 15)");执行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;关闭记录集对象

$vaule = _ArrayDisplay($Select_Db, "数据库查询结果");显示数组

80107671 发表于 2012-7-9 20:42:59

高手救火呀!

xms77 发表于 2012-7-9 21:49:59

#include <GuiListView.au3>

For $i = 1 To_GUICtrlListView_GetItemCount($hListView)-1
        $cpqpn = _GUICtrlListView_GetItemText($hListView, $i, 2);取得那cpqpn一列的内容
        ...   ;比较去吧
        ...   
Next

298311657 发表于 2012-7-9 21:57:37

本来就已经存放在数组变量$Select_Db内了

funapp 发表于 2012-7-9 22:16:39

{:face (411):}

funapp 发表于 2012-7-9 22:16:50

{:face (114):}

funapp 发表于 2012-7-9 22:16:57

{:face (197):}

funapp 发表于 2012-7-9 22:17:04

{:face (301):}

funapp 发表于 2012-7-9 22:17:12

{:face (207):}

funapp 发表于 2012-7-9 22:17:20

{:face (356):}

funapp 发表于 2012-7-9 22:17:29

{:face (249):}

funapp 发表于 2012-7-9 22:17:46

{:face (370):}

80107671 发表于 2012-7-10 06:42:09

围观的人真多..呵...感谢xms77兄台. 去公司再试试! Thank you.
页: [1]
查看完整版本: 请问怎么定义文中list中"cpqpn"栏位为变量,或者怎么导入到文本中?