本人在写这个查询语句的时候出了问题请各位大哥大姐门解决一下:
dm.ADOQ1.Close;
   dm.ADOQ1.SQL.Clear;
   dm.ADOQ1.SQL.Text:='select count(*) as '+#39+trim('学生总人数')+#39+'from wb_card where sf_num=000 or sf_num=001';
   dm.ADOQ1.Open;
   StudHZF.QRLabel18.Caption:=dm.ADOQ1.Fields[0].AsString;
在最后一句运行不了。
dm.ADOQ1.Close;
    dm.ADOQ1.SQL.Clear;
    dm.ADOQ1.SQL.Text:='select grade as'+#39+trim('年级')+#39+',class as'+#39+trim('班级')+#39+',count(*) as'
                        +#39+'人数'+#39+'from wb_card where class<>'+#39+''+#39
                        +'group by grade,class order by (grade+class) desc';    dm.ADOQ1.Open;
    ClassNumF.QuickRep1.Prepare;
    ClassNumF.QuickRep1.Preview;
这里也是最后两句也运行不了。

解决方案 »

  1.   

    'select count(*) as '+#39+trim('学生总人数')+#39为什么不以一个英文词做为字段名,把学生总人数换一个英语词,另外字段名两边也不需要引号,不用加#39
      

  2.   

    第一个错误是:
    Project Longin_pro.exe raised exception class EAccessViolation with message 'Access Violation at address 004FC62B in module'LoginF_pro.exe'.Read of address 00000390'.
    Process Stopped.Use Step or Run to Continue.
    第二是:
    Project Longin_pro.exe raised exception class EAccessViolation with message 'Access Violation at address 004FC62B in module'LoginF_pro.exe'.Read of address 000002F0'.
    Process Stopped.Use Step or Run to Continue.
      

  3.   

    首先ClassNumF需要先创建  with dm.ADOQ1 do
      begin
        Close;
        SQL.Clear;
        SQL.Add('select count(*) as ''学生总人数'' from wb_card where sf_num=000 or sf_num=''001'' ');
        Open;
        StudHZF.QRLabel18.Caption:=FieldByName('学生总人数').AsString;    Close;
        SQL.Clear;
        SQL.Add('select grade as ''年级'', class as ''班级'',count(*) as ''人数'', from wb_card ' +
          ' where class <>'''' group by grade, class order by grade, class desc ');
        open;
        ClassNumF.QuickRep1.Prepare;
        ClassNumF.QuickRep1.Preview;
      end;
      

  4.   

    各位大哥还是有问题啊?
    StudHZF.QRLabel18.Caption:=FieldByName('学生总人数').AsString;
    和StudHZF.QRLabel18.Caption:=dm.ADOQ1.Fields[0].AsString;
    都是抱内存地址错误啊
      

  5.   

    StudHZF.QRLabel18.Caption:=dm.ADOQ1.Fields[0].AsString;上面这句试这样写看看
    StudHZF.QRLabel18.Caption:=dm.ADOQ1.Fields[0].value.Asstring