头疼,发疯了, 数据库操作的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 这个写得很详细,可惜太少了..哭.$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 头疼啊,,谁能帮帮我.. 我也很头痛。我就是千篇一律 直接COPY 倒也省事。
ObjCreate("ADODB.Connection")
因为这句话 我疯狂了2个晚上。就是没找到什么意思。你还真不错。在哪找到的。
直接用UDF吧。简单 省事 看不到帮助里没有的函数了! _ReadDate 函数能根据查询条件对listview进行读取? 它读取的结果是返回listview吗? 还是在megbox中显示? 如果想回显到listview怎么操作?
while Not $RS.eof And Not $RS.bof.........这句代码是什么意思?
看一小段代码就觉得头昏眼花了,,请好心人帮帮忙.. 早起等消息,期待好心人路过....... :face (23):等待好心人.......... $rs.bof 判断记录指针是否到了第一条记录之前(比如说现在当前在第一条记录,再往上移一位,就没有记录了)
$rs.eof 判断记录指针是否到了最后一条记录之后 (比如说现在当前在最后一条记录,再往下移一位,也没有记录了)
while Not $RS.eof And Not $RS.bof表示记录存在时执行while循环 新手!!学习了!!
新手!!学习了!!
页:
[1]