第一:用adoquery打开数据表后,指针指向第一条,然后把字段AAA的值赋给变量Q,再移动到下一条,使Q=Q+(第二条记录AAA的值),依此类推,最后遍历整个表,不用count,就是这样一个一个的相加,怎么写?
第二:想在上面的语句中加个条件判断,取DateTimePicker的日期,怎么加?我加了(我先格式化了,取了短日期),怎么总报DateTimePicker1.date没有默认值呢(我先格式化了,取了短日期)?
谢谢大家!
第二:想在上面的语句中加个条件判断,取DateTimePicker的日期,怎么加?我加了(我先格式化了,取了短日期),怎么总报DateTimePicker1.date没有默认值呢(我先格式化了,取了短日期)?
谢谢大家!
解决方案 »
- 关于获取窗体图标~
- 为什么这段代码生成的数据,不能修改,报键列信息不足或不正确的错误
- 求救,系统类型
- 如何快速在一个Project中复制一个已经存在的From?
- 100分请教…… 我想将windows中的文件夹隐藏,使别人无法找到及打开……
- 怎么才能让我的界面变漂亮点,我现在写的程序窗口老是灰灰的!!
- 在线等,问题一解决,即刻给分:请问如何提取DECISIONGRAPH中的SUM
- 如何设置listItem的前景和背景色
- 请问哪能找到delphi6开发版中的所有VCL(组件)的中文介绍以及例子,多谢了。
- 向access2000表添加记录时出错,提示:field '日期' not found
- 字符串加密
- 高手请进:左看右看没有毛病……
然后,Q:=adoquery.field[0].value;就可以了,
把DateToStr(DateTimePicker.Date)赋给这个变量
在查询条件中用变量
试试吧!
begin
Close;
SQL.Text := 'Select * from tmptable where datecolumn between :D1 and :D2';
Params.ParamByName('D1').Value := formatDateTime('yyyy-mm-dd',DateTimePicker.DateTime);
Params.ParamByName('D2').Value := formatDateTime('yyyy-mm-dd',DateTimePicker.DateTime+1);
Open;
end;
procedure TF_in.Button1Click(Sender: TObject);
var
kk1:double;
kk2:double;
k1:double;
k2:double;
k3:double;
k4:double;
begin
kk1:=0;
kk2:=0;
ADOQuery1.close;
ADOQuery1.sql.clear;
ADOQuery1.sql.add('??????????????');
//就是这里,每次选完DateTimePicker1.date后,触发button1时就报错(说是DateTimePicker1.date没有默认值)。 adoquery1.Active:=true;
if not adoquery1.Active then adoquery1.Open; while not ADOQuery1.Eof do
begin
Application.ProcessMessages;
k1:=adoquery1.Fields[9].Asfloat;
k2:=adoquery1.fields[5].asfloat;
k3:=adoquery1.Fields[6].AsFloat;
k4:=adoquery1.Fields[8].AsFloat;
kk1:=k1/(k2/20*k3)/k4;
kk2:=kk2+kk1;
Application.ProcessMessages;
adoquery1.Next;
label1.Caption:=floattostr(kk2);
end;
end;
var
I:Integer;
begin
i:=0;
with ADOQuery1 do
begin
SQL.Clear;
SQL.Text := 'Select * FROM sysobjects where datediff(day,crdate,:Date)=0';
Parameters[0].Value := DateTimePicker1.Date; //条件
Open;
while not(Eof) do
I:=I+FieldByName('id').AsInteger; //循环加
end;
end;
adoquery里的SQLString属性Select* from tmptable where datecolumn between :D1 and :D2
--ADOQuery1.Params.ParamByName()
--应改为:
--ADOQuery1.Parameters.ParamByName()DateTimePicker1.date没有默认值
--这个问题比较奇怪……
--那你给它一个默认值,赋值给DateTimePicker1.date试试
报“没有默认值”是因为 SQL 把 DataTimePicker1.Date 解释成一个变量,所以 SQL 引擎报错,查查看 SQL 语句就知道了P.S. 估计你在用 Access
ADOQuery1.sql.add('select riqi from sale_in where riqi <=:t2 ');
adoquery1.Parameters.ParamByName('t2').Value:=formatdatetime('yyyy-mm-dd',DateTimePicker1.Date);
showmessage(formatdatetime('yyyy-mm-dd',DateTimePicker1.Date));
adoquery1.Open;
while not ADOQuery1.Eof do begin
……
ADOQuery1.sql.add('select * from sale_in where riqi<=:t2');
adoquery1.Parameters.ParamByName('t2').Value := formatDateTime('yyyy-mm-dd',DateTimePicker1.DateTime);
adoquery1.Open;
while not ADOQuery1.Eof do
begin
…………
end;