动态创建ADO组件
时间:2011-10-25
来源:互联网
             var
Madoquery :array of Tadoquery;
a,b,i,n:integer;
begin
i:=4;
for a:=1 to i do
begin
Madoquery[a]:=Tadoquery.Create(self);
Madoquery[a].Connection:=mainform.ADOConnection1;
with Madoquery[a] do
begin
close;
sql.Clear;
sql.Add('select 月,count(月) as 数字 from t_2011');
sql.Add(' where 前三位='+inttostr(n)+' and 日期>=#'+time1+'#');
sql.Add(' and 日期<=#'+time2+'# group by 月');
showmessage(sql.Text);
open;
end
end;
运行报内存错误,有没有高人帮忙解答一下,谢谢
            Madoquery :array of Tadoquery;
a,b,i,n:integer;
begin
i:=4;
for a:=1 to i do
begin
Madoquery[a]:=Tadoquery.Create(self);
Madoquery[a].Connection:=mainform.ADOConnection1;
with Madoquery[a] do
begin
close;
sql.Clear;
sql.Add('select 月,count(月) as 数字 from t_2011');
sql.Add(' where 前三位='+inttostr(n)+' and 日期>=#'+time1+'#');
sql.Add(' and 日期<=#'+time2+'# group by 月');
showmessage(sql.Text);
open;
end
end;
运行报内存错误,有没有高人帮忙解答一下,谢谢
作者: liiu83724 发布时间: 2011-10-25
             Delphi(Pascal) code
应该是这样吧,你没有分配内存,只是声明而已,试下Madoquery :array [0..4]of Tadoquery;
(可能说错了)
            var Madoquery :array of Tadoquery;
应该是这样吧,你没有分配内存,只是声明而已,试下Madoquery :array [0..4]of Tadoquery;
(可能说错了)
作者: moshao6 发布时间: 2011-10-25
             LS没说错,动态数组是需要SetLength声明才能使用的
另外LZ的代码没释放创建的adoquery
            另外LZ的代码没释放创建的adoquery
作者: funxu 发布时间: 2011-10-25
             Delphi(Pascal) code
            var Madoquery :array of Tadoquery; a,b,i,n:integer; begin i:=4; SetLength(mADOQuery,i);//设置动态数组长度 for a:=1 to i do begin Madoquery[a]:=Tadoquery.Create(self); Madoquery[a].Connection:=mainform.ADOConnection1; with Madoquery[a] do begin close; sql.Clear; sql.Add('select 月,count(月) as 数字 from t_2011'); sql.Add(' where 前三位='+inttostr(n)+' and 日期>=#'+time1+'#'); sql.Add(' and 日期<=#'+time2+'# group by 月'); showmessage(sql.Text); open; end end;
作者: wooden954 发布时间: 2011-10-25
             Delphi(Pascal) code
            begin i:=4; setlength(Madoquery,i+1);//要初始化数组!(下面的语句使用了4的下标,所以i+1) for a:=1 to i do begin Madoquery[a]:=Tadoquery.Create(self); Madoquery[a].Connection:=ADOConnection1; with Madoquery[a] do begin close; sql.Clear; sql.Add('select 月,count(月) as 数字 from t_2011'); sql.Add(' where 前三位='+inttostr(n)+' and 日期>=#'+time1+'#'); sql.Add(' and 日期<=#'+time2+'# group by 月'); showmessage(sql.Text); open; end end; end;
作者: D_Parent 发布时间: 2011-10-25
 相关阅读 更多  
      
    热门阅读
-   office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具 office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具阅读:74 
-   如何安装mysql8.0 如何安装mysql8.0阅读:31 
-   Word快速设置标题样式步骤详解 Word快速设置标题样式步骤详解阅读:28 
-   20+道必知必会的Vue面试题(附答案解析) 20+道必知必会的Vue面试题(附答案解析)阅读:37 
-   HTML如何制作表单 HTML如何制作表单阅读:22 
-   百词斩可以改天数吗?当然可以,4个步骤轻松修改天数! 百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!阅读:31 
-   ET文件格式和XLS格式文件之间如何转化? ET文件格式和XLS格式文件之间如何转化?阅读:24 
-   react和vue的区别及优缺点是什么 react和vue的区别及优缺点是什么阅读:121 
-   支付宝人脸识别如何关闭? 支付宝人脸识别如何关闭?阅读:21 
-   腾讯微云怎么修改照片或视频备份路径? 腾讯微云怎么修改照片或视频备份路径?阅读:28 















