数据库新手问路?(送分题)(50分)

  • 主题发起人 主题发起人 深圳小吴
  • 开始时间 开始时间

深圳小吴

Unregistered / Unconfirmed
GUEST, unregistred user!
有两个数据表:
数据表1:A,B,C ....;(query1)
当用运行如下语句时出错:
query1.close;
query1.sql.clear;
query1.sql.add('select * from where A="'+query1.fieldbyname('B').asstring+'"');
query1.sql.open;
系统出错为:can`t find field 'B';
不知何???
 
delphi不会自动产生field对象,需要你自己添加。
你的问题可能是没有add‘B’这个field。
 
>>query1.sql.add('select * from where A="'+query1.fieldbyname('B').asstring+'"');

为什么不这样呢?
query1.sql.add('select * from where A=B);
 
双击query控件,在编辑框里点右键,选ADD FIELDS
 
笨办法,你干脆把b分离出去,再做一个表。
然后
select *
from table1,table2
where table1.a=table2.b
呵呵,好笨的方法咯
 
from 哪个表?没有表名!
 
menxin兄,
你那方法没我的笨:)
深圳的小吴,
from后面要加上table的名字啊
 
你只要改一句:
定义
strch1:string;
将程序加上
strch1:=query1.fieldbyname('B').asstring;
接着你的程序查询:
query1.sql.add('select * from where A="'+strch1+'"');
必定行!
 
把双引号改成单引号试一试:
query1.sql.add('select * from where A='''+query1.fieldbyname('B').asstring+'''');
 
不明白,query被close后如何还能去取它的Field?在没有open之前,他的Field应该还不存在吧?
 
SORRY!THANK EVERYBODY!
这么多人分怎么分啊!
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
594
import
I
后退
顶部