发现TADOQUERY的重大BUG !!!!!!!!(200)

  • 主题发起人 主题发起人 bamfk1023
  • 开始时间 开始时间
B

bamfk1023

Unregistered / Unconfirmed
GUEST, unregistred user!
环境: WINDOWS 2000 ADV SERVER MSSQL 2000 SP4 DELPHI 7 所有补丁都打了 库结构 表T1 id bigint <主键非空> classid bigint name nvarchar(20) 简单的代码 Adoquery.Append; Adoquery.fields[0].value:=123; Adoquery.fields[1].value:=456; Adoquery.fields[2].value:='abc'; Adoquery.Post; // 出错 出错 出错 出错 出错 出错 ...... 出错使人烦燥 .... 注意是这个 win2000server 其它操作系统正常 ...
 
MDAC版本检查一下吧,别的应该没什么不同
 
改成 Adoquery.fields[0].asstring:='123'; Adoquery.fields[1].asstring:='456';试试
 
还是不行 ... ...
 
建议使用varchar然后赋值:Adoquery.fields[0].asinteger:=123
 
不要怀疑adoquery
 
为什么要用BIGINT呢,INT不够用吗?你的数据中会有达到几十亿这么大的数字?
 
用bigint是因为习惯的主键方式是时间(到秒)+三位的随机数 比如625055322170如果这样的话 主键只能用字符型了 ...个人不喜欢用自增长字段怎么测试都是出错,谁如果有一样环境可以做个测试,刚叫公司老大测试也是一样.Adoquery BUG
 
用 TAdoDataset 也是一样 ...
 
时间(到秒)+三位的随机数 比如625055322170 你这样实际上就是字符型的,如果是INT的你怎么加三位随机数?例如123+456 结果应该是579,而不是你想要的123456阿所以用VARCHAR类型吧,或者用INT自增
 
出啥错啊,如果是win2000才出错,那也是2000的BUG啊。
 
是啊 在看MDAC版本 看不出一个名堂 ...改习惯是很麻烦的事情
 
这个应该是你不会用吧,再有Bug也不会是这个啊你的SQL是怎么写的,返回的是否是可编辑DateSet这种方法,你可以试试Table遇到问题多找找资料,用这么惊世骇俗的标题,来吓唬人吗
 
先告诉我这样改会否出错? Adoquery.Append; Adoquery.fields[0].value:=123; Adoquery.fields[1].value:=456; //Adoquery.fields[2].value:='abc'; Adoquery.Post; 如果还是出错,那么下面的代码呢? Adoquery.Append; Adoquery.fields[0].AsInteger:=123; //Adoquery.fields[1].value:=456; //Adoquery.fields[2].value:='abc'; Adoquery.Post; 比较肯定的是如果在其他Windows系统中同样的代码不出错,问题应该是出在MDAC上
 
可以确定是BUG 与代码无关因为编译都是正确的 只是一个操作系统下面不行原因应该是MDAC上 但是MDAC 不知道要怎么改 ...标题这样写是无奈 发了三个类似的贴子都没什么人回 ...
 
.......................www.hellocpp.net中国人自己的codeproject资料库
 
你一定要这样保存数据吗你这样写试试看adoquery1.close;adoquery1.sql.clear;adoquery1.sql.add('insert into table1() values()');adoquery1.ExecSQL;
 
试试adoquery1.fieldvalues['id']:=123;adoquery1.fieldvalues['classid']:=456;adoquery1.fieldvalues['name']:='abc';不行,就过滤第三个付值的,再不行,过滤第二个.看看是不是对bigint付值时报错.另外,最好说明报什么错.
 
因为我界面都是 dbedit 所以才这样 如果我用edit自己写代码才能用 insert into 这个是开发时间的问题 呵 FieldValues['f5']:=date;一样的错误错误提示 invalid variant type
 
终于还是没有解决 ....
 
后退
顶部