调试期 水质允许超标:delphi?adoquery

来源:百度文库 编辑:九乡新闻网 时间:2024/04/30 04:26:04
流程是这样的,根据原始表和配置表,新生成一个任务表。中间跨数据库,所以操作不是很方便。不过学到了一些SQL语句,总忘记,现在总结一下备份。第①部分第1条:SELECT COUNT(1) AS Expr1 FROM (SELECT kc_dm, COUNT(pj_dyid) AS d FROM b_kc_para GROUP BY kc_dm) a实现效果:在b_kc_para表中先按kc_dm分组统计出pj_dyID的个数 标识 d,然后统计出d的行的个数标识为Expr1,这样就可以用fieldbyname将Expr1赋值给其他变量了。注意,d不是表中的字段,是一个临时标识。第2条:SELECT COUNT(*) AS bmn FROM (SELECT DISTINCT bp_baomi FROM kaochang) DERIVEDTBL实现效果:在kaochang表里统计出bp_baomi的个数,同时不计重复,标识为 bmn 。以上两条是比较典型的,同时我还学会了动态分配动态数组的长度。第②部分SetLength(数组,Length(数组)+增量(比如+1));例如:SetLength(BianLiang,Length(BianLiang)+2);效果,可以在发现数组定义长度不够用的时候,在不删掉前面的数据下扩充数组的长度。  第③部分ADO控件,ADOQuery读取数据库字段中的数值,例如: ADOQuery1.SQL.Clear;
 ADOQuery1.SQL.Add('SELECT COUNT(1) AS Expr1 FROM (SELECT kc_dm, COUNT(pj_dyid) AS d FROM b_kc_para GROUP BY kc_dm) a');
 ADOQuery1.Open;
 arrlenth:=ADOQuery1.fieldbyname('Expr1').AsInteger;实现:把从数据库得到的字段Expr1的值以Integer型赋给变量arrlenth。 还有就是读取和写入数据库的 操作函数,ADOQuery.append .. ADOQuery.post?? 和? ADOQuery.First......ADOQuery.next;例子: for i:=1 to num? do
 begin
 ADOQuery3.Append变量1:=ADOQuery1.fieldbyname('kc_dm').AsString; 变量2:=ADOQuery2.fieldbyname('kc_dm').AsString; ADOQuery3.FieldByName('bp_baomi').AsInteger:=变量1;
 ADOQuery3.FieldByName('kc_dm').AsString:=变量2;
 ADOQuery3.FieldByName('pj_dyID').AsInteger:='字段内容';
 ADOQuery3.FieldByName('user1').AsString:='字段内容';
 ADOQuery3.FieldByName('time1').AsString:='字段啊内容';
 ADOQuery3.FieldByName('user2').AsString:='字段内容';
 ADOQuery3.FieldByName('time2').AsString:='字段内容';
 ADOQuery3.FieldByName('taktime').AsString:=DateTimeToStr(Date()) +   FormatdateTime(' hh:mm', Now());//得到当前系统日期+时间 ADOQuery3.Post;
 end;
 ADOQuery1.Next;
 ADOQuery2.Next;
 end;效果就是把ADOQuery1和ADOQuery2的相关内容传递给ADOQuery3,同时生成ADOQuery3字段中的其他内容。很典型很简单的例子。