急!未知错误
关于主从表的查询,编译通过,在本机(d7,sqlserver环境)和另外一台机器上(也装delphi7)顺利执行,能显示查询结果界面,到其他机器上,点击查询确定,就出现"未知错误".
如果是adoquery的问题,应该在本机也会出现的,现在弄不明白了.
望老鸟们指点一二.多谢.
我查询form用到了Tadoquery,Tdatasource(两组)Tf1book,Tolecontainer控件.
问题点数:100、回复次数:9Top
1 楼ysai(所有真的都是假的真,所有假的都是真的假)回复于 2004-12-02 12:09:37 得分 40
更新MDAC,最新好象是2.8Top
2 楼BigAngell(学而不思则罔 思而不学则殆)回复于 2004-12-02 12:29:26 得分 5
UPTop
3 楼czdugu(木瓜)回复于 2004-12-03 12:08:40 得分 0
奇怪的是只有那个界面不好,其他的都好的.Top
4 楼liyu001xj(鲤鱼山)回复于 2004-12-03 12:54:20 得分 0
markTop
5 楼bee2518(迷茫ing)回复于 2004-12-03 12:56:12 得分 50
如果你使用了计算字段的话,"未知错误"只在ide 环境出现,你只需将计算字段的lookupcache打开即可
Lookup字段经常会出现这种问题
请修改Adodb.pas的TCustomADODataSet.LocateRecord,在最前面加入如下语句:
if Varisnull(keyValues) or VarisEmpty(KeyValues) then
begin
result:=false;
exit;
end;
将这个pas加入到你的项目里,或者编译成dcu,将其拷入$delphi\lib底下.Top
6 楼bee2518(迷茫ing)回复于 2004-12-03 12:57:59 得分 0
另外一个办法也试试,看别人的帖子
在表的onNewRecord事件中給item_id(这个字段随意的,不重要的一个字段)
字段一個沒用的值,就是不能讓它為Null
,不要忘記在插入前后設置
adoquery1.AutoCalcFields值。如:
procedure TForm1.ADOQuery1NewRecord(DataSet: TDataSet);
begin
adoquery1.FieldByName('item_id').asinteger:=0;
end;
procedure TForm1.ADOQuery1BeforeInsert(DataSet: TDataSet);
begin
adoquery1.AutoCalcFields:=false;
end;
procedure TForm1.ADOQuery1AfterInsert(DataSet: TDataSet);
begin
adoquery1.AutoCalcFields:=true;
end;Top
7 楼whitetiger8(键盘未敲坏,基本功未练成)回复于 2004-12-03 13:02:45 得分 5
markTop
8 楼czdugu(木瓜)回复于 2004-12-08 09:05:03 得分 0
谢谢大家关心,问题解决了,发现是f1book好像有问题,没有注册还是怎么的。后来用stringgrid代替就好了。散分Top
9 楼elite01(极度)回复于 2005-06-17 13:21:38 得分 0
我倒。我也被困惑!
Top




