找回密码
 加入
搜索
查看: 5434|回复: 8

[AU3基础] 头疼,发疯了, 数据库操作的UDF函数。求助

[复制链接]
发表于 2010-3-18 15:22:25 | 显示全部楼层 |阅读模式
本帖最后由 l5mygirl 于 2010-3-19 11:45 编辑

"数据库操作的UDF函数。"
http://www.autoitx.com/forum.php ... =%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
 楼主| 发表于 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
 楼主| 发表于 2010-3-18 20:18:35 | 显示全部楼层
头疼啊,,谁能帮帮我..
发表于 2010-3-18 23:27:40 | 显示全部楼层
我也很头痛。我就是千篇一律 直接COPY 倒也省事。
ObjCreate("ADODB.Connection")
因为这句话 我疯狂了2个晚上。就是没找到什么意思。你还真不错。在哪找到的。

直接用UDF吧。简单 省事 看不到帮助里没有的函数了!
 楼主| 发表于 2010-3-19 08:35:18 | 显示全部楼层
_ReadDate 函数能根据查询条件对listview进行读取?    它读取的结果是返回listview吗?   还是在megbox中显示?    如果想回显到listview怎么操作?
while Not $RS.eof And Not $RS.bof.........这句代码是什么意思?

看一小段代码就觉得头昏眼花了,,请好心人帮帮忙..
 楼主| 发表于 2010-3-19 09:31:33 | 显示全部楼层
早起等消息,期待好心人路过.......
 楼主| 发表于 2010-3-19 09:51:58 | 显示全部楼层
等待好心人..........
发表于 2010-3-19 11:56:20 | 显示全部楼层
$rs.bof 判断记录指针是否到了第一条记录之前  (比如说现在当前在第一条记录,再往上移一位,就没有记录了)
$rs.eof 判断记录指针是否到了最后一条记录之后 (比如说现在当前在最后一条记录,再往下移一位,也没有记录了)

while Not $RS.eof And Not $RS.bof表示记录存在时执行while循环
发表于 2010-3-19 12:08:29 | 显示全部楼层
新手!!学习了!!
新手!!学习了!!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-20 22:23 , Processed in 0.083498 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表