JzZhuanYong.First;
while not JzZhuanYong.Eof do
begin
If JzListQuery.Locate('ymid;jzfs;ymjc',VarArrayOf([
JzZhuanYong.fieldbyname('ymID').AsString,
JzZhuanYong.fieldbyname('myType').AsString,
JzZhuanYong.fieldbyname('ymNum').AsInteger]),[]) then
begin
ShowMessage('找到记录:'+
' ymID='+JzZhuanYong.fieldbyname('ymID').AsString+
' myType='+JzZhuanYong.fieldbyname('myType').AsString+
' ymNum='+JzZhuanYong.fieldbyname('ymNum').AsString);
end else
begin
ShowMessage('没有找到记录:'+
' ymID='+JzZhuanYong.fieldbyname('ymID').AsString+
' myType='+JzZhuanYong.fieldbyname('myType').AsString+
' ymNum='+JzZhuanYong.fieldbyname('ymNum').AsString);
end;
JzZhuanYong.Next;
end;
JzZhuanYong中的记录在JzListQuery中都有,为什么有的记录就是找不到!!!
我发现凡是JzZhuanYong.FieldByName('myType').AsString='2'的记录都找不到,
其它的记录都能找到,为什么啊???到底哪里错了!!!
while not JzZhuanYong.Eof do
begin
If JzListQuery.Locate('ymid;jzfs;ymjc',VarArrayOf([
JzZhuanYong.fieldbyname('ymID').AsString,
JzZhuanYong.fieldbyname('myType').AsString,
JzZhuanYong.fieldbyname('ymNum').AsInteger]),[]) then
begin
ShowMessage('找到记录:'+
' ymID='+JzZhuanYong.fieldbyname('ymID').AsString+
' myType='+JzZhuanYong.fieldbyname('myType').AsString+
' ymNum='+JzZhuanYong.fieldbyname('ymNum').AsString);
end else
begin
ShowMessage('没有找到记录:'+
' ymID='+JzZhuanYong.fieldbyname('ymID').AsString+
' myType='+JzZhuanYong.fieldbyname('myType').AsString+
' ymNum='+JzZhuanYong.fieldbyname('ymNum').AsString);
end;
JzZhuanYong.Next;
end;
JzZhuanYong中的记录在JzListQuery中都有,为什么有的记录就是找不到!!!
我发现凡是JzZhuanYong.FieldByName('myType').AsString='2'的记录都找不到,
其它的记录都能找到,为什么啊???到底哪里错了!!!
解决方案 »
- △△TreeView简单显示数据表问题???△△
- Delphi7中启动scktsrvr.exe时出现“Can't create new socket”,怎么解决?
- ActiveX中如何实现控件退出前的清理工作
- 完了,dbgrideh竟然要注册,辛苦编的可运行竟然不能运行程序.有免费的吗?快给一个免费的给我吧
- 有关TMediaPlayer的使用问题:必须设置filenmae属性吗?
- 小弟的3个小问题!急啊!
- 屏幕取词?
- Delphi 取得所有事件消息!求救!
- ■△▲●★◆〓□§§《软件工程》下载,林锐博士编著,绝对不可错过!//Kingron
- wordapplication,worddocument等控件该如何使用?
- 音乐电视合成机系统软件涉及到哪些方面编程?
- 关于treeview在多表中动态生成树的问题大家帮帮我分不够可以加在线等待。
因为两个表的记录是一一对应的,所以两个表同时 Next,然后用下面的语句判断
If (JzListQuery.FieldByName('ymid').AsString=
JzZhuanYong.FieldByName('ymID').AsString)and
(JzListQuery.FieldByName('jzfs').AsString=
JzZhuanYong.FieldByName('myType').AsString)and
(JzListQuery.FieldByName('ymjc').AsString=
JzZhuanYong.FieldByName('ymNum').AsString) then
用上面的语句代替Locate,结果显示都能找到对应的记录。
因为两个表现在是记录一一对应,但是并不能保证一直是一一对应,
所以不能用上面的方法代替Locate
直接first后
就locate
试试看。
二最好再好面加上Locate的类型,在不区分大小写的情况下加:loCaseInsensitive
如果实在不行的话,建议换一种查找方式.使用Filter
JzZhuanYong.fieldbyname('ymID').AsString,
JzZhuanYong.fieldbyname('myType').AsString,
JzZhuanYong.fieldbyname('ymNum').AsInteger]),[]) then
在[]加上参数试试,或者就是有空格存在,用Trim()试试
以致于在JzListQuery中有两个字段名相同的列:jzfs人人有分!