procedure TForm2.RGLGRIDClick(Sender: TObject);
var str1:string;
    str2:string;
    str3:string;
    str4:string;  
    str5:string;
    str6:string;
    str:ansistring;
    pstr1:string;
    pstr2:string;
    pstr3:string;
begin
pstr1:='insert into Tpzjs execute pzjs';
datamodule1.GLDataSet1.Close ;
datamodule1.GLDataSet1.CommandText:=pstr1;
datamodule1.GLDataSet1.Open ;
pstr2:='insert  into Tbnsd execute bnsd';
datamodule1.GLDataSet1.Close ;
datamodule1.GLDataSet2.Close ;
datamodule1.GLDataSet2.CommandText:=pstr2;
datamodule1.GLDataSet2.Open ;
pstr3:='insert  into Tbnjl execute bnjl';
datamodule1.GLDataSet2.Close ;
datamodule1.GLDataSet3.Close ;
datamodule1.GLDataSet3.CommandText:=pstr3;
datamodule1.GLDataSet3.Open ;
str:='select a.enterpriseid,a.enterprisename,b.vrealmoney,b.ovrealmoney,c.vaz,d.vbzjs,e.rvaz,f.vaguerdon,b.srealmoney,b.osrealmoney,c.saz,d.sbzjs,e.rsaz,f.saguerdon,';
str:=str+'b.irealmoney,b.oirealmoney,c.eiz,d.lbzjs,e.reiz,f.eiguerdon,b.erealmoney,b.oerealmoney,c.elz,d.ebzjs,e.relz,f.elguerdon from basicinfo a,bili b,bzview c,Tpzjs d,Tbnsd e,Tbnjl f,correlation g';
str:=str+'where a.enterpriseid=b.enterpriseid and a.enterpriseid=c.enterpriseid and a.enterpriseid=d.enterpriseid and a.enterpriseid=e.enterpriseid and a.enterpriseid=f.enterpriseid and a.enterpriseid=g.enterpriseid';
if GRCEnterprisename.Checked =true then
  begin
   str1:=str+'and enterprisename='+''''+GRenterprisename.Text+'''';
   str:=str+str1;
  end
  else
  str1:='';
if GRCEnterprisekind.Checked =true  then
   begin
   str2:=str+'and enterprisekind='+''''+GRenterprisekind.Text+'''';
   str:=str+str2;
   end
   else
   begin
   ;
   end;
if GRCEnterpriseclass.Checked =true then
   begin
    str3:='and enterpriseclass='+''''+GRenterpriseclass.Text +'''';
    str:=str+str3;
    end
    else
    begin
    ;
    end;
if  GRCEnterpriseenrolmoney.Checked =true then
   begin
    str4:='and entrolmoney between'+''''+GREnterpriseenrolmoneybegin.Text+''''+'and ' +''''+GREnterpriseenrolmoneyend.Text+'''';
    str:=str+str4;
    end
    else
    begin
    ;
    end;
if  GRCholddate.Checked =true then
    begin
     str5:='and holddate between'+''''+GRHolddatebegin.Text +''''+'and'+''''+GRholddateend.Text+'''';
     str:=str+str5;
    end
    else
    begin
    ;
    end;
if  GRCGovernor.Checked =true then
    begin
     str6:='and Governor='+''''+GRGovernor.Text+'''';
     str:=str+str6;
     end
     else
     begin
     ;
     end;
datamodule1.GLDataSet3.Close ;
datamodule1.GLSDataSet.Close;
datamodule1.GLSDataSet.CommandText:=str;
datamodule1.GLSDataSet.Open;
datamodule1.GLSDataSet.Active:=true;
with dbgrideh1 do
   begin
         Columns[0].FieldName:='EnterpriseID';
         Columns[1].FieldName:='EnterpriseName';
         Columns[2].FieldName:='vrealmoney';
         Columns[3].FieldName:='ovrealmoney';
         Columns[4].FieldName:='vaz';
         Columns[5].FieldName:='vbzjs';
         Columns[6].FieldName:='rvaz';
         Columns[7].FieldName:='vaguerdon';
         Columns[8].FieldName:='srealmoney';
         Columns[9].FieldName:='osrealnoney';
         Columns[10].FieldName:='saz';
         Columns[11].FieldName:='sbzjs';
         Columns[12].FieldName:='rsaz';
         Columns[13].FieldName:='saguerdon';
         Columns[14].FieldName:='irealmoney';
         Columns[15].FieldName:='oirealmoney';
         Columns[16].FieldName:='eiz';
         Columns[17].FieldName:='lbzjs';
         Columns[18].FieldName:='reiz';
         Columns[19].FieldName:='eiguerdon';
         Columns[20].FieldName:='erealmoney';
         Columns[21].FieldName:='oerealmoney';
         Columns[22].FieldName:='elz';
         Columns[23].FieldName:='ebzjs';
         Columns[24].FieldName:='relz';
         Columns[25].FieldName:='elguerdon';
         end;
end;end;
 
 
 

解决方案 »

  1.   

    記得在像這樣的地方$$加空格﹕
    str:='select a.enterpriseid,a.enterprisename,b.vrealmoney,b.ovrealmoney,c.vaz,d.vbzjs,e.rvaz,f.vaguerdon,b.srealmoney,b.osrealmoney,c.saz,d.sbzjs,e.rsaz,f.saguerdon,';
    str:=str+'$$加空格b.irealmoney,b.oirealmoney,c.eiz,d.lbzjs,e.reiz,f.eiguerdon,b.erealmoney,b.oerealmoney,c.elz,d.ebzjs,e.relz,f.elguerdon from basicinfo a,bili b,bzview c,Tpzjs d,Tbnsd e,Tbnjl f,correlation g';
    str:=str+'$$where a.enterpriseid=b.enterpriseid and a.enterpriseid=c.enterpriseid and a.enterpriseid=d.enterpriseid and a.enterpriseid=e.enterpriseid and a.enterpriseid=f.enterpriseid and a.enterpriseid=g.enterpriseid';
    if GRCEnterprisename.Checked =true then
      begin
       str1:=str+'and enterprisename='+''''+GRenterprisename.Text+'''';
      

  2.   

    如果你的后台是用sqlserver的话,建议你将出错的sql语句放到sql分析器中进行分析;
      

  3.   

    你一定要注意各个sql语句相加时要加空格。
    这一点很容易忽略的。
      

  4.   

    我的sql语句在分析器里运行是可以的,但一到程序中就说是'a'附近有错误!另外请各位指教另外的那个错误!!