程序编译出错,各位老大帮忙看看!(50分)

  • 主题发起人 主题发起人 寒与凉
  • 开始时间 开始时间

寒与凉

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TForm2.BitBtn15Click(Sender: TObject);
var M,N,i,j,lxsh:Integer;
zhname:string;
rq5:TDatetime;
begin
query2.close;
query2.SQL.clear;
query2.SQL.add('select count (*) from mainku');
query2.prepare;
query2.Open;
N:=query2.RecordCount;
For i:=1 to N do
begin
query2.close;
query2.sql.Clear;
query2.sql.add('select * from mainku where Zh Number =N');
query2.prepare;
query2.Open;
zhname:=query2.fieldbyname('zh').asstring;
query2.close;
query2.sql.Clear;
query2.sql.add('select count * from history where zh='+'zhname');
query2.prepare;
query2.Open;
M:=query2.recordCount;
For j:=1 to M do
begin
query2.close;
query2.sql.Clear;
query2.sql.add('select * from history where lsh Number =M');
query2.prepare;
query2.Open;
rq5:=strtodatetime(query2.fieldbyname('qsr').asstring);
lxsh:=query2.fieldbyname('fsje').asinteger * strtoint(floattostr(03/31/2002-rq5));
query2.close;
query2.sql.Clear;
query2.sql.add('update mainku set lx='+'lxsh'+'where Zh='+'N');
query2.prepare;
query2.execsql;
end;
end;

报错是:Invalid use of keydord Token :Number
 
zh是字段名,number是表示表中总记录数的第几条记录,你知道这样应该是如何表示的吗?
 
//这里有问题:where zh number =n这样的sql语句不合法。
//你的mainku字段里面应该是zh_number之类的field名称吧,feild名称不能写成zh number这样,
否则会认为两个字段
query2.sql.add('select * from mainku where Zh Number =N');
//下面这句也同样问题
query2.sql.add('select * from history where lsh Number =M');

这两句话我想你的意思应该是这样
query2.sql.add('select * from mainku where zh='+ inttostr(N));

query2.sql.add('select * from history where lsh='+inttostr(m));
 
Zh.Number ,lsh.number
 
找上面的改了,还是一样的提示
 
你的sql是不是要写成:
select zh from mainku where number=N
 
不是,是要找ZH字段的第N条记录
 
没有人帮忙看了吗?
 
>>是要找ZH字段的第N条记录
你可以在查询之后使用Query的moveby,来移动记录。
如先query执行sql,'select * from history'
然后query.moveby(10); //往后移10条记录,
根据你的要求作,再取出zh字段值。
 
如何建立和删除一个临时库?如何把一个表中某个字段的值插入另外一个表的字段中呢?
 
各种Query要区分?
 
多人接受答案了。
 
后退
顶部