偶是c#過來delphi的,請問下面的過程,錯在哪啊?為什麼不對啊?procedure ComBind(sql:string;comb1:TDBComboBox;val:string;);
begin
with DataM.q1 do
begin
sql.Clear;
sql.Add(' '+str+' ');
Open;
comb1.DataSource:=DataM.q1;
comb1.DataField:= val;
end
end;
begin
with DataM.q1 do
begin
sql.Clear;
sql.Add(' '+str+' ');
Open;
comb1.DataSource:=DataM.q1;
comb1.DataField:= val;
end
end;
begin
with DataM.q1 do
begin
close;//---------------------
sql.Clear;
sql.Add(' '+str+' ');
Open;
comb1.DataSource:=DataM.q1;
comb1.DataField:= val;
end
end;
//----函数参数名称[SQL]与查询组件的属性名称相同,要改一下。
begin
with DataM.q1 do
begin
sql.Clear;
sql.Add(' '+str+' ');
Open;
comb1.DataSource:=DataM.q1;
comb1.DataField:= val;
end
end;
你这样改一下试试,猜测。
begin
Application.Initialize;
Application.CreateForm(TDataModule2, DataModule2); //把创建DataM的放到前面试试呢
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
procedure ComBind(sql:string;comb1:TDBComboBox;val:string;);
//----函数参数名称[SQL]与查询组件的属性名称相同,要改一下。
begin
with DataM.q1 do
begin
sql.Clear;
sql.Add(' '+str+' ');
Open;
comb1.DataSource:=DataM.q1;//---这儿只能是个DATASOURCE控件,不能直接是数据源控件的。//comb1.DataField:= val;//所指定的数据字段名称最好是用下面的这种型式:
comb1.datasfield:=datasource.dataset.fields[x];//--x:所用字段在查询返回集中索引号
end
end;
这句错了啊,参数里面最后那个分号是没有的
//----函数参数名称[SQL]与查询组件的属性名称相同,要改一下。
begin
with DataM.q1 do
begin
close;
sql.Clear;
sql.Add(' '+Asql+' ');
Open;
asource.dataset:=datam.q1;
comb1.DataSource:=asource;//---这儿只能是个DATASOURCE控件,不能直接是数据源控件的。
comb1.datasfield:=datasource.dataset.fields[AIndex].displayName;//--x:所用字段在查询返回集中索引号
end
end;
procedure ComBind(sql:string;comb1:TDBComboBox;val:string);//把val:string;去掉;號
begin
with DataM.q1 do
begin
sql.Clear;
sql.Add(' '+str+' ');
Open;
DataM.ds1.DataSet:=DataM.q1;//增加這一句
comb1.DataSource:=DataM.ds1;
comb1.DataField:= val;
end
end;