主题:  为什么我用ODBC.U32……

小菜鸟元元

职务:普通成员
等级:1
金币:0.0
发贴:7
注册:2003/12/16 10:09:08
#12003/12/19 21:36:49
为什么我用ODBC.U32做的数据查询一执行插入新记录就非法操作啊?查询记录就没有这个问题,SHOWME里面的插入新记录却正常。



chc9

职务:普通成员
等级:1
金币:1.0
发贴:306
注册:2003/4/16 9:52:14
#22003/12/19 21:41:56
ODBC连接写对了么?SQL语句写对了么?在SQL下执行能插入么?置顶的帖子里有,还有AW7.0的所谓汉化破解版也爱出现这种情况。



小菜鸟元元

职务:普通成员
等级:1
金币:0.0
发贴:7
注册:2003/12/16 10:09:08
#32003/12/20 0:04:58
ODBC连接对的,开始是正常的,东西一多就这样了。6.0、6.5都这样。



与人同乐

职务:管理员
等级:6
金币:18.0
发贴:3928
注册:2001/3/11 15:45:42
#42003/12/20 6:25:48
小菜鸟元元在上个帖子中说
引用:
ODBC连接对的,开始是正常的,东西一多就这样了。6.0、6.5都这样。

未必,可以看一下是否试图插入重复的惟一性关键字?

在大多数情况下,范错误的是人。



小菜鸟元元

职务:普通成员
等级:1
金币:0.0
发贴:7
注册:2003/12/16 10:09:08
#52003/12/20 9:25:38
--设置查询参数
Sqlstr:="select 公司名称 from list"
--打开数据库
ODBChandle:=ODBCOpen(WindowHandle,"error","minglu","",""
--在数据库中查找
gxtj:= ODBCExecute(ODBChandle, Sqlstr)
--关闭数据库
ODBCClose(ODBChandle)
--判定记录是否存在
if (Find(Return^danci^Return, Return^gxtj^Return)) then
Message:="是否更新记录?"
--存在则更新之
Sqlstr:= "UPDATE [list] SET 公司名称='"^danci^"', 简单介绍='"^jianjie^"', 国家省市='"
Sqlstr:=Sqlstr^guojia^"', 地址="^dizhi^"', 公司网址='"^gswz^"', 联系人='"
Sqlstr:=Sqlstr^lianxiren^"', 电话="^dianhua^"', 传真='"^chuanzhen^"', E_mail='"
Sqlstr:=Sqlstr^E_mail^"', 手机="^shouji^"', 详细介绍='"
Sqlstr:=Sqlstr^xxjs^"', 上载产品="^szzp^" WHERE 公司名称="^danci

--否则插入一个新记录
else
Message:="是否插入一个新记录?"
Sqlstr:= "INSERT INTO [list] (公司名称,简单介绍,国家省市,地址,公司网址,联系人,电话,传真,E_mail,手机,详细介绍,上载产品) valueS ("^danci
Sqlstr:=Sqlstr^",'"^jianjie^"', '"^guojia^"', '"^dizhi^"', '"^gswz^"', '"^lianxiren^"', '"^dianhua^"', "^chuanzhen^"', '"^E_mail^"', '"^shouji^"', '"^xxjs^"', '"^szzp^""

end if
OK:=MessageBox(WindowHandle, Message, "确认", 33) -- 1=OK, 2=Cancel
if OK=2 then
GoTo(@"更新/添加"
end if
--在数据库中查找
OK:=ODBCExecute(ODBChandle, Sqlstr)
--关闭数据库
ODBCClose(ODBChandle)
GoTo(@"000"

代码是这样的。



chc9

职务:普通成员
等级:1
金币:1.0
发贴:306
注册:2003/4/16 9:52:14
#62003/12/21 13:01:28
整体流程上没错。你用个显示图表,把INSERT的Sqlstr给显示一下。就是{Sqlstr}
把insert into……………………的SQL语句在数据库里看看,是否能插入,先确认inser的SQL语句有没有错误,另外,数据库里建表最好用拼音加英语命名。