adoquery的问题 ( 积分: 100 )

  • 主题发起人 主题发起人 emeng
  • 开始时间 开始时间
E

emeng

Unregistered / Unconfirmed
GUEST, unregistred user!
var mcht:string;
use:integer;
begin
adoquery1.Close; //连接transinfo数据库表
adoquery1.SQL.clear;
adoquery1.SQL.Add('select mchtid,count(*) as num from transinfo group by mchtid');
use:=adoquery1.fieldbyname('num').asinteger;
mcht:=adoquery1.fieldbyname('mchtid').asstring;
adoquery1.Open;

请大家帮我找找问题,我是初学者,那里错了我不清楚,编译出现 'num'找不到的问题 怎么办?
 
adoquery1.Close; //连接transinfo数据库表
adoquery1.SQL.clear;
adoquery1.SQL.Add('select mchtid,count(*) as num from transinfo group by mchtid');
adoquery1.Open;

use:=adoquery1.fieldbyname('num').asinteger;
mcht:=adoquery1.fieldbyname('mchtid').asstring;
 
先打开
再读取数据???
完了再 关闭???
 
原来是这样,请你再帮我看看下边的,adoquery2什么时候open呢?
while not adoquery1.Eof do
begin
adoquery2.Close; //连接POS——HAOCAI数据库表
adoquery2.SQL.Clear;
adoquery2.SQL.Add('update POS_hc set lest=lest-use where mchtid=''mcht''' );
adoquery1.Next;
end;
 
while not adoquery1.Eof do
begin
adoquery2.Close; //连接POS——HAOCAI数据库表
adoquery2.SQL.Clear;
adoquery2.SQL.Add('update POS_hc set lest=lest-use where mchtid=''mcht''' );
adoquery2.execute; //不上open
adoquery1.Next;
end;
 
你家那句什么功能阿?
 
EXECSQL 我记不太清了,delphi你按个.后会有提示的?
 
报错啊 [错误] hc.pas(51): Undeclared identifier: 'execute'
 
adoquery2.SQL.Add('update POS_hc set lest=lest-use where mchtid=''mcht''' );
我的这一句写的对不对? lest 是 float型 use是int型
 
ADOQuery2.ExecSQL;//不返回结果到数据集
ADOQuery2.Open;//返回结果到数据集
 
select 用open
insert/delete/update 用execSQL
 
那我应在在那里加上open呢?
 
adoquery1.First;
while not adoquery1.Eof do
begin
adoquery2.Close; //连接POS——HAOCAI数据库表
adoquery2.SQL.Clear;
adoquery2.SQL.Add('update POS_hc set lest=lest-use where mchtid=''mcht''');
adoquery2.sql.open;
adoquery1.Next;
end;
我这样写总是会在open报错
[错误] hc.pas(51): Undeclared identifier: 'open'
 
第一:用ADOQuery2.ExecSQL;//不返回结果到数据集
第二:不是SQL.OPEN,没SQL
第三:编译器有提示方法,怎么不看?
 
o 用这个就没问题了 不过编译成功 点击button1出现use附近有语法错误
 
错误信息什么?...可以设置断点跟踪....
 
为什么运行完了没有更新表pos_hc
 
var mcht:char;
use:integer;
begin
adoquery1.Close; //连接transinfo数据库表
adoquery1.SQL.clear;
adoquery1.SQL.Add('select mchtid,count(*) as num from transinfo group by mchtid');
adoquery1.Open;
use:=adoquery1.fieldbyname('num').Value;
mcht:=adoquery1.fieldbyname('mchtid').AsString;


adoquery1.First;
while not adoquery1.Eof do
begin
adoquery2.Close;
adoquery2.SQL.Clear;
adoquery2.SQL.Add('update POS_hc set lest=lest-use where mchtid=''mcht''' );
adoquery2.execsql;
adoquery1.Next;
end;
end;
运行完了没有更新pos_hc表
 
后退
顶部