我用delphi7和sql server2000连接数据库,有如下代码:
procedure TForm3.FormCreate(Sender: TObject);
var i : integer;
var sEdit : TEdit;
begin
for i:= 1 to colnumber do
begin
sedit := TEdit.Create(self);
sedit.parent:=self;
sEdit.Name :='cEdit'+IntToStr(i);
sedit.Width:=100;
sedit.Top:=20*i;
end;
end;procedure TForm3.Button1Click(Sender: TObject);
var i : integer;
begin
datamodule2.ADOQuery1.Close;
datamodule2.ADOQuery1.SQL.Clear;
datamodule2.ADOQuery1.sql.Add('insert into ' + lname); for i:=1 to colnumber do
begin
datamodule2.ADOQuery1.SQL.Add('values(:a)');
datamodule2.ADOQuery1.Parameters.ParamByName('a').Value:=(FindComponent('cEdit'+IntToStr(i)) as TEdit).Text ;
end; datamodule2.ADOQuery1.Prepared:=true;
datamodule2.ADOQuery1.ExecSQL; form3.Visible:=false;
end;
其中lname和colnumber是从form1窗体传来的表的名字和此表的列数,这个窗体是 form3窗体,先动态创建了文本框,然后通过单击按钮把文本框中输入的内容插入表中。可是执行for循环的时候像死机了一样,特别慢,感觉是进入了死循环,其实 colnumber的值才为5!
请问大家这是怎么回事,能帮小弟解决一下吗?
procedure TForm3.FormCreate(Sender: TObject);
var i : integer;
var sEdit : TEdit;
begin
for i:= 1 to colnumber do
begin
sedit := TEdit.Create(self);
sedit.parent:=self;
sEdit.Name :='cEdit'+IntToStr(i);
sedit.Width:=100;
sedit.Top:=20*i;
end;
end;procedure TForm3.Button1Click(Sender: TObject);
var i : integer;
begin
datamodule2.ADOQuery1.Close;
datamodule2.ADOQuery1.SQL.Clear;
datamodule2.ADOQuery1.sql.Add('insert into ' + lname); for i:=1 to colnumber do
begin
datamodule2.ADOQuery1.SQL.Add('values(:a)');
datamodule2.ADOQuery1.Parameters.ParamByName('a').Value:=(FindComponent('cEdit'+IntToStr(i)) as TEdit).Text ;
end; datamodule2.ADOQuery1.Prepared:=true;
datamodule2.ADOQuery1.ExecSQL; form3.Visible:=false;
end;
其中lname和colnumber是从form1窗体传来的表的名字和此表的列数,这个窗体是 form3窗体,先动态创建了文本框,然后通过单击按钮把文本框中输入的内容插入表中。可是执行for循环的时候像死机了一样,特别慢,感觉是进入了死循环,其实 colnumber的值才为5!
请问大家这是怎么回事,能帮小弟解决一下吗?
解决方案 »
- listview画背景的问题
- 想实现打印报表是一张表格结构,有什么办法或控件?
- 如何实现FASTREPORT中打印现大写,或者,如何实现QUERYREPORT中的
- 开始学习delphi,散分交友!
- 任何翻译PDU格式的短信内容
- 以前见过一个可以查看鼠标所在的窗口类型的小工具,现在急需
- 如何解决Never-Build Package 'A' required Always-Build Package 'B'的问题
- 如何编程序得到SQL Server的安装目录?
- IdMappedPortTCP1 控件发送问题求助
- 怎么用webbrower自动填写表单???
- 如何虚拟一个 COM 口
- 关于存储过程中无法查询中文名的问题
var i : integer;
begin
for i:=1 to colnumber do
begin
datamodule2.ADOQuery1.Close;
datamodule2.ADOQuery1.SQL.Clear;
datamodule2.ADOQuery1.sql.Add('insert into ' + lname); datamodule2.ADOQuery1.SQL.Add('values(:a)');
datamodule2.ADOQuery1.Parameters.ParamByName('a').Value:=(FindComponent('cEdit'+IntToStr(i)) as TEdit).Text ;
end; datamodule2.ADOQuery1.Prepared:=true;
datamodule2.ADOQuery1.ExecSQL; form3.Visible:=false;
end;
begin
datamodule2.ADOQuery1.SQL.Add('values(:a)');1:好像要屏蔽上边那句,这样会SQL脚本会加多次;
2:多次加这个参数“:a”,大概会出错。