for i := 1 to Data.ADOQMBooks.RecordCount do
    begin
      Printer.Canvas.TextOut(200,500+i*80,
      +Data.ADOQMBooks.FieldByName('BookID').AsString+'      '       报错行
      +Data.ADOQMBooks.FieldByName('ISBN').AsString+'        '
      +Data.ADOQMBooks.FieldByName('BookName').AsString+'        '
      +Data.ADOQMBooks.FieldByName('BookType').AsString+'        '
      +Data.ADOQMBooks.FieldByName('BookAuthor').AsString+'        '
      +Data.ADOQMBooks.FieldByName('PublishName').AsString+'        '
      +Data.ADOQMBooks.FieldByName('PublishDate').AsString+'        '
      +Data.ADOQMBooks.FieldByName('PageCount').AsString+'        '
      +Data.ADOQMBooks.FieldByName('Keyword').AsString+'        '
      +Data.ADOQMBooks.FieldByName('RegisterDate').AsString+'        '
      +Data.ADOQMBooks.FieldByName('StockCount').AsString+'        '
      +Data.ADOQMBooks.FieldByName('Memo').AsString);
      Data.ADOQMBooks.Next;
    end;
运行时代码的+Data.ADOQMBooks.FieldByName('BookID').AsString+'      '这一行报错,错误提示为Operator not applicable to this operand type,有谁知道这是怎么回事嘛?  

解决方案 »

  1.   

    Operator not applicable to this operand type    运算符不使用于这一运算对象类型你的字段里面有备注、OLE或其他不能转换为字符串型的。
      

  2.   

    +Data.ADOQMBooks.FieldByName('BookID').AsString+'      '最前面这个加号是干什么的,去掉看
      

  3.   

    加号肯定要去掉的,之后报什么错啊,贴出来看看                                      www.coderpub.com
      

  4.   

    欢迎加入DELPHI 程序员群 1805366 参加技术讨论  !!