找回密码
 加入
搜索
查看: 1867|回复: 2

au3向数据库添加字段时数目有限制(Bug)

[复制链接]
发表于 2009-1-3 19:01:26 | 显示全部楼层 |阅读模式
大家好!

最近在学习用au3写数据时发现的一个问题,在对建立的新表添加字段时超过8个就会出一些以下错误:
$addfld.Execute("ALTER TABLE "  & $tblname & " ADD id identity(1, 1) primary key,a char,b char,c char,d char,e char,f char,g char,h char")^ ERROR

但是如果把代码修改成下面少一个字段:

$addfld.Execute("ALTER TABLE "  & $tblname & " ADD id identity(1, 1) primary key,a char,b char,c char,d char,e char,f char,g char")

就不会出错!


这个字段数目有8个限制的问题,在做更新表操作时也存在,不知道是au3的BUG还是我的代码那里有问题!
希望大家帮忙看看,谢谢!

以下是代码:


#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 291, 132, 282, 248)
$Button1 = GUICtrlCreateButton("Test建立数据库", 80, 56, 121, 41, 0)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###


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)
$newmdb.ActiveConnection.Close;建数据库
$addtbl = ObjCreate("ADODB.Connection")
$addTbl.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & $mdb_data_path)
$addTbl.Execute("CREATE TABLE " & $tblname)
$addtbl.Close;建表

$addfld = ObjCreate("ADODB.Connection")
$addfld.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & $mdb_data_path)
$addfld.Execute("ALTER TABLE " _
& $tblname & " ADD id identity(1, 1) primary key,a char,b char,c char,d char,e char,f char,g char,h char");id identity(1, 1) primary key为自动编号和主键
$addfld.Close;建列表名
MsgBox(64,"提示","建立数据库成功",5)
Else
MsgBox(64,"提示","你已经建立了一个数据库了",5)
EndIf
EndFunc


While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
Local $mdb_data_path = "test.mdb"
Local $tblname="Computer"

_data($mdb_data_path, $tblname)
EndSwitch
WEnd


[ 本帖最后由 sheep_autoit 于 2009-1-4 21:08 编辑 ]
发表于 2009-6-20 20:51:01 | 显示全部楼层
我也有这个问题求解啊!!!!
发表于 2009-6-20 23:32:51 | 显示全部楼层
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 291, 132, 282, 248)
$Button1 = GUICtrlCreateButton("Test建立数据库", 80, 56, 121, 41, 0)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

FileDelete(@ScriptDir&"\test.mdb")
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);建数据库
$newmdb.ActiveConnection.Close
$Conn = ObjCreate("ADODB.Connection")
$Conn.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & $mdb_data_path)
$StrSql = "CREATE TABLE aaa (id autoincrement(1,1) primary key, a1 text(250), a2 text(250), a3 text(250), a4 text(250), a5 text(250), a6 text(250), a7 text(250), a8 text(250),a9 text(250))"
$Conn.Execute($StrSql);建表
$Conn.Close

MsgBox(64,"提示","建立数据库成功",5)
Else
MsgBox(64,"提示","你已经建立了一个数据库了",5)
EndIf
EndFunc

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
Local $mdb_data_path = @ScriptDir&"\test.mdb"
Local $tblname="Computer"

_data($mdb_data_path, $tblname)
EndSwitch
WEnd

评分

参与人数 1金钱 +35 贡献 +9 收起 理由
lynfr8 + 35 + 9

查看全部评分

您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-9-23 01:30 , Processed in 0.077111 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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