数据库里有一张result表,
根据窗体上,用户选择的datetimepicker2里的日期,比如用户选了2005-11-1。
现在要把这个日子的后七天(2005-11-2,2005-11-3....2005-11-8)插入到表格result里。
该表有两个字段d(datetime型),q(float型)
q是edit2.text的内容,也一起插入到表格里,一共7个值对应后7天的日子。
while i<8 do
begin
with adoquery1 do
begin
close;
sql.Clear;
sql.add('');//这一段怎么写?
execsql;
end;
i:=i+1;
end;
我试过parambyname('d'),照着书上写,刚打了“.”,就出现错误了。
不用这上面的方法,还有什么别的办法?
根据窗体上,用户选择的datetimepicker2里的日期,比如用户选了2005-11-1。
现在要把这个日子的后七天(2005-11-2,2005-11-3....2005-11-8)插入到表格result里。
该表有两个字段d(datetime型),q(float型)
q是edit2.text的内容,也一起插入到表格里,一共7个值对应后7天的日子。
while i<8 do
begin
with adoquery1 do
begin
close;
sql.Clear;
sql.add('');//这一段怎么写?
execsql;
end;
i:=i+1;
end;
我试过parambyname('d'),照着书上写,刚打了“.”,就出现错误了。
不用这上面的方法,还有什么别的办法?
解决方案 »
- DSPack 实现录像功能 获取远程计算机摄像头
- Tchart如何使用
- 请问各位大师在01 02...49这49个两位字符串中,取n(n:1--48)个为一组,全部取完不重复的所有组,把这些组存到一变量中,如何算法?
- 一个傻傻的问题
- ▲▲▲▲发布一个解释器程序▲▲▲▲
- 第二届深圳Delphi爱好者聚会通知
- 安装第三方控件后,什么样的控件是免费的??????
- 请问这是怎么回事?EStringListError ,List index out of bounds(-2);
- delphi简单问题
- 问一个WebBrower的问题
- 不装驱动,直接写串口打印。请教如何获得打印机状态?我用的打印机是Epson300A。
- 一个动态库的问题?
sql.add('insert into tablename values(:#d,:#f)').
Parameters.ParamByName('#d').Value := FormatDateTime('yyyy-mm-dd',datetimepicker2.Date);
Parameters.ParamByName('#f').Value := strtofloat(edit2.txt);
execsql;
begin
with adoquery1 do
begin
close;
sql.Clear;
sql.add('insert into tablename values(:#d,:#f)').
Parameters.ParamByName('#d').Value := FormatDateTime('yyyy-mm-dd',datetimepicker2.Date+i);
Parameters.ParamByName('#f').Value := strtofloat(edit2.txt);
execsql;
end;
i:=i+1;
end;
var
i:integer;
begin
i:=1;
while i<8 do
begin
with adoquery1 do
begin
close;
sql.Clear;
sql.add('insert into result (d,q)values(:#d,:#q)');
Parameters.ParamByName('#d').Value := FormatDateTime('yyyy-mm-dd',
datetimepicker2.Date+i);
Parameters.ParamByName('#q').Value := strtofloat(edit2.Text);
execsql;
end;
i:=i+1;
end;end;执行到execsql这里说:“没有执行可选特性???”然后就中止运行了。
问题在哪?
其实我就是想把7个预测结果和实际销量图放在一个坐标图里。比较一下。
原先有人给了建议说生成个临时表,我不做临时表了。直接在库里建一个预测结果表。字段是日期和预测销量。然后把这个表对应series2。我的问题的根源,前几天写的帖子。
http://community.csdn.net/Expert/topic/4795/4795530.xml?temp=.7779657
有办法直接把edit框里的text,对应的日期我可以求出来的,然后以坐标点的形式(datetimepicker2+i,edit框里text值)直接点到dbchart上啊。
i :=0 ;
while i<8 do
begin
with adoquery1 do
begin
close;
sql.Clear;
sql.add('insert into table_name(date,float) values(:a,:b)');
ADOQuery1.Parameters.ParamByName('a').Value :=FormatDateTime('yyyy-mm-dd',
datetimepicker2.Date+i);
ADOQuery1.Parameters.ParamByName('b').Value := strtofloat(edit2.Text);
execsql;
end;
i:=i+1;
end;
sql.add('insert into tablename values(:data,:v)').
Parameters.ParamByName(':data').Value := FormatDateTime('yyyy-mm- dd',datetimepicker2.Date);
Parameters.ParamByName(':v').Value := strtofloat(edit2.txt);
end;
begin
with adoquery1 do
begin
close;
sql.Clear;
sql.add('insert into result(销售日期,预测销量)');
sql.add('values(:d,:q)');
Parameters.ParamByName('d').Value:=datetimepicker2.Date+i;
//FormatDateTime('yyyy-mm-dd',
// datetimepicker2.Date+i);
Parameters.ParamByName('q').Value:= q[i];//就是edit2.text的内容。
execsql;
end;
i:=i+1;
end;
由于我是个初学者,知道单步跟踪,但实施的我不知道对不对,具体如下:
我在靠近execsql窗体的旁边,用鼠标点击了一下,然后这句就被红色的底纹标注了出来,运行到这步是stop了,但是我怎么看adoquery1.sql.text。
copy watch value
出来的内容如下
Undeclared identifier: 'select'
我快郁闷死了。怎么搞得。
这是我毕设的最后一块了。弄不出来。
while i<8 do
begin
with adoquery1 do
begin
close;
sql.Clear;
sql.add('insert into tablename values(:#d,:#f)').
Parameters.ParamByName('#d').Value := FormatDateTime('yyyy-mm-dd',datetimepicker2.Date+i);
Parameters.ParamByName('#f').Value := strtofloat(edit2.txt);
showmessage(sql.text);//用showmessage调试。
execsql;
end;
i:=i+1;
end;
我去查询分析器里看了看,result表里有有了5-2日的预测销量了,在看dbchar里,这一点也有了。我再用你的方法在看看sql里到底时什么。
谢谢你那么耐心的教我。
sql.text的内容是
insert into result (销售日期,预测销量)
values (:d,:q)
应该还是execsql这里停止了,出现那个“没有执行可选特性“。