第21个问题:关于SQL语言 -by 烂泥(45分)

  • 主题发起人 主题发起人 烂泥
  • 开始时间 开始时间

烂泥

Unregistered / Unconfirmed
GUEST, unregistred user!
如下:
query1.sql.clear;
query1.SQL.add('
select a.rq,a.name,b.bm,b.zbh1 from yh a,clgl b
where a.name=b.xm');
query1.open ;
list;<==调用过程

在list()中
procedure list();
begin
tmp.fieldbyname('rq').asstring:=
query1.fieldbyname('rq').asstring;
tmp.fieldbyname('bm').Asstring:=
query1.fieldbyname('bm').asstring;
end;
过程中第一句正确;第二句报query1中没有发现bm字段

注:我在Sql server的Enterprise manager中试过上述的sql语句返回正确.
如何改~

 
看看query的field manager(不知道写错没有)
 
field editor 吧。
 
调试的时候先把sql语句写入到sql 属性里,再对field editor 。。。怎么说呢?
就可以在设计期间不漏掉参数。
 
可能两个表里都有bm所以有些问题。
select a.rq,a.name,b.bm as bm,b.zbh1 from yh a,clgl b where a.name=b.xm'
 
tmp.fieldbyname('rq').asstring:=
query1.fields[0].asstring;
tmp.fieldbyname('bm').Asstring:=
query1.fields[2].asstring;

搞定...
 
Kent,
query1.fieldbyname 和fields[]有什么区别?除了效率。
 
to 千中元:

这个好象没什么区别...除了效率...hehe....

to 烂泥:

query1.sql.clear;
query1.SQL.add('
select yh.rq,yh.name,clgl.bm,clgl.zbh1 from yh clgl
where yh.name=clgl.xm');
query1.open ;

应该可以...

你用的yh a,clgl b好象不行...


我做实验也不好使...


听听别人怎么说...
 
你可把query1对应grid1打开看一下嘛
要不对应as语句
 
解决方案:
一、时间太长,记不住,原来我在field editor中加了个计算字段,和clgl表的
所有字段,却没有New一个data的bm字段,连接b.bm时自然报query1中没有
发现bm字段了。
在field editor中 new一个同名的字段设为data就ok了/。
真菜~!!!!

二、个人感想:
@^@ DFW真是好地方 唱:DFW啊,好地方啊,处处是大虾呀,。。。。
:-( 个人太菜: 唱:都是我的错,。。。
三、收工
 
多人接受答案了。
 
后退
顶部