l5mygirl 发表于 2010-3-18 15:22:25

头疼,发疯了, 数据库操作的UDF函数。求助

本帖最后由 l5mygirl 于 2010-3-19 11:45 编辑

"数据库操作的UDF函数。"
http://www.autoitx.com/forum.php?mod=viewthread&tid=13109&highlight=%CA%FD%BE%DD%BF%E2
这个贴子看了好久 看不懂,有好多句子不知道为什么那么写,不知道是什么意思,哪位大侠把下面代码做个详细的注释吧,适合初学者看的,小弟万分感谢..
#Include <GuiListView.au3>

;数据库文件名,密码,表名,查询条件,列表框
Func _ReadDate($mdbdatapath,$mdbdatapwd,$TableName,$chaxuntiaojian,$List);读取函数
      if FileExists($mdbdatapath) Then
                _GUICtrlListView_DeleteAllItems($List)
                $addfld = ObjCreate("ADODB.Connection")
                $addfld.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" &$mdbdatapath& ";Jet Oledb:Database Password=" & $mdbdatapwd)
             $RS =ObjCreate("ADODB.Recordset")
                $RS.ActiveConnection = $addfld
                ;SELECT 列名称 FROM 表名称   根据列名称查找,列名称可多个,用‘,’分割
                ;SELECT * FROM 表名称          查找所有
                $RS.Open ("Select "&$chaxuntiaojian & " From " & $TableName )
                while Not $RS.eof And Not $RS.bof
                        if @error =1 Then ExitLoop
                        GUICtrlCreateListViewItem ( $RS.Fields (0).value&"|"& $RS.Fields (1).value&"|"& $RS.Fields (2).value&"|"& $RS.Fields (3).value&"|"& $RS.Fields (4).value,$List )
                  ;MsgBox(0, "", $RS.Fields (1).value);显示表第一个数据
                        $rs.movenext
                WEnd
                $rs.close
                $addfld.Close
      Else
                MsgBox(64,"错误!","你还没有创建数据库!",5)
      EndIf
EndFunc

l5mygirl 发表于 2010-3-18 15:25:58

这个写得很详细,可惜太少了..哭.$addfld = ObjCreate("ADODB.Connection")
Autoit 访问 Access 数据库是靠 COM 接口来的,所以先要建立一个 COM 对象,ObjCreate就是建立对象,ADODB 是建立什么类型的对象,Connection 是这个对象的一个方法,是做一个连接的动作。做完这个动作,就得到了这个连接的句柄 $addfld。

$addfld.Open ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=数据库路径" )
Open 是打开数据库,括号里是参数,指示要打开什么样的数据库,名称是什么,或者叫源是什么。
Provider=Microsoft.Jet.OLEDB.4.0
这个是告诉它要用这个引擎来打开 Access 数据库,不同类型的数据库有不同类型的引擎驱动。
Data Source=数据库路径"
这个是告诉它数据库文件的路径,就是放在什么地方。

下面就是要开始真正访问数据库里的数据了。

建议看一些有关SQL的东西。 by pcmac

l5mygirl 发表于 2010-3-18 20:18:35

头疼啊,,谁能帮帮我..

nmgwddj 发表于 2010-3-18 23:27:40

我也很头痛。我就是千篇一律 直接COPY 倒也省事。
ObjCreate("ADODB.Connection")
因为这句话 我疯狂了2个晚上。就是没找到什么意思。你还真不错。在哪找到的。

直接用UDF吧。简单 省事 看不到帮助里没有的函数了!

l5mygirl 发表于 2010-3-19 08:35:18

_ReadDate 函数能根据查询条件对listview进行读取?    它读取的结果是返回listview吗?   还是在megbox中显示?    如果想回显到listview怎么操作?
while Not $RS.eof And Not $RS.bof.........这句代码是什么意思?

看一小段代码就觉得头昏眼花了,,请好心人帮帮忙..

l5mygirl 发表于 2010-3-19 09:31:33

早起等消息,期待好心人路过.......

l5mygirl 发表于 2010-3-19 09:51:58

:face (23):等待好心人..........

298311657 发表于 2010-3-19 11:56:20

$rs.bof 判断记录指针是否到了第一条记录之前(比如说现在当前在第一条记录,再往上移一位,就没有记录了)
$rs.eof 判断记录指针是否到了最后一条记录之后 (比如说现在当前在最后一条记录,再往下移一位,也没有记录了)

while Not $RS.eof And Not $RS.bof表示记录存在时执行while循环

masterpcc 发表于 2010-3-19 12:08:29

新手!!学习了!!
新手!!学习了!!
页: [1]
查看完整版本: 头疼,发疯了, 数据库操作的UDF函数。求助