难道新版不支持 access数据库吗?
问一下 我想用一下 access数据库因为我的数据 比较简单化
没想到我吧坛子上的ACCESS 数据库例子运行了一下
竟然是死锁的 真奇怪
但是SQLite例子 是可以运行的
难道新版不支持 access数据库吗?
具体代码是这样的
Func du()
GUICtrlSendMsg($ListView1, $LVM_DELETEALLITEMS, 0, 0)
$addfld = ObjCreate("ADODB.Connection")
$addfld.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" &$mdb_data_path)
$RS =ObjCreate("ADODB.Recordset")
$RS.ActiveConnection = $addfld
$RS.Open ("Select "&$T & " From " & $tblname )
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,$ListView1 )
; MsgBox(0, "", $RS.Fields (1).value);显示表第一个数据
$rs.movenext
WEnd
$rs.close
$addfld.Close
EndFunc $addfld = ObjCreate("ADODB.Connection")
$addfld.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" &$mdb_data_path)
$RS =ObjCreate("ADODB.Recordset")
$RS.ActiveConnection = $addfld
這段的東西 其實是 電腦裡面的ODBC 的東西
程式不能跑 跟 新舊版應該無關
要不你 你用舊版的用你現在的程式 跑看看 Func data($mdb_data_path, $tblname)
If Not FileExists($mdb_data_path) Then
$newMdb = ObjCreate("ADOX.Catalog")
$newMdb.Create("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & $mdb_data_path & ";Jet Oledb:Database Password=" & $mdb_data_pwd)
$newMdb.ActiveConnection.Close;建数据库
$addtbl = ObjCreate("ADODB.Connection")
$addtbl.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & $mdb_data_path & ";Jet Oledb:Database Password=" & $mdb_data_pwd)
$addtbl.Execute("CREATE TABLE " & $tblname)
;$addtbl.Execute("CREATE TABLE ignorant")
$addtbl.Close;建表
$addfld = ObjCreate("ADODB.Connection")
$addfld.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & $mdb_data_path & ";Jet Oledb:Database Password=" & $mdb_data_pwd)
$addfld.Execute("ALTER TABLE " & $tblname & " ADD id identity(1, 1) primary key ,address text ,ico text ,name text ,newid number");id identity(1, 1) primary key为自动编号和主键
$addfld.Close;建列表名 ADD id identity(1, 1) primary key
MsgBox(64, " 提示:", @CRLF & "建立数据库成功", 5)
Else
MsgBox(64, " 提示:", @CRLF & "你已经建立了一个数据库了....", 5)
EndIf
EndFunc ;==>data
Func du()
$addfld = ObjCreate("ADODB.Connection")
$addfld.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & $mdb_data_path & ";Jet Oledb:Database Password=" & $mdb_data_pwd)
$RS = ObjCreate("ADODB.Recordset")
$RS.ActiveConnection = $addfld
$RS.Open("Select * From " & $tblname & " ORDER BY id ASC");
While Not $RS.eof And Not $RS.bof
If @error = 1 Then ExitLoop
ReDim $file[$n + 1]
$file[$n] = $RS.Fields(3).value
$file[$n] = $RS.Fields(1).value
$file[$n] = $RS.Fields(2).value
$file[$n] = $RS.Fields(4).value
$n = $n + 1
$RS.movenext
WEnd
$RS.close
$addfld.Close
Return $file
EndFunc ;==>du Func data($mdb_data_path, $tblname)
If Not FileExists($mdb_data_path) Then
$newMdb = ObjCreate( ...
baduxiyang 发表于 2014-11-21 12:30 http://www.autoitx.com/images/common/back.gif
谢谢你引用了这么多
我用的是水木子的 源码 写的跟你完全一样
还是死锁算了我还是用SQLite吧谢谢 死锁跟新版本无关系吧?数据库读写是调用组件的
sqlite 确实比 access好啊 还没学到数据库,,不知道这个sqlite怎么个用法,,需要安装吗 加了密码的ACCESS数据库 目前好像是无法操作,我测试出来是这个情况。 回复 7# tvzml
我测试加密的ACCESS的没有问题,不过我没用新版本3.3.12以上的不清楚~ 跟access版本有没有关系?2003与2013,32位跟64位,使用方法相同吗? 跟access版本有没有关系?2003与2013,32位跟64位,使用方法相同吗?
xichha 发表于 2014-11-22 07:18 http://www.autoitx.com/images/common/back.gif
我也没用 access 2013建立数据库啊 就是用程序建立的 难道新版不支持 access数据库吗?
页:
[1]