SQL.Add('insert into book(Code,Name,Author,Press,OutDate,Cost,Memo)'+ ' values (:code,:name,:Author,:Press,:OutDate,:Cost,:Memo)');
      Parameters.ParambyName('Code').value := CodeEdit.Text;
      Parameters.ParambyName('Name').value := NameEdit.Text;
      Parameters.parambyName('Author').value := AuthorEdit.Text;
      parameters.parambyname('Press').value := PressEdit.Text;
      try
        parameters.Parambyname('OutDate').Value := StrToDate(OutTimeEdit.text);
      except
        MessageDlg('参数<出版时间>设置错误',mtError,[mbok],0);
        Exit;
    end;
      try
        parameters.paramByName('Cost').Value := StrTofloat(CostEdit.text);
      except
        MessageDlg('参数<价格>设置错误',mtError,[mbok],0);
        Exit;
      end;
      try
        parameters.ParamByName('Memo').Value := Memo1.text;
      except
        MessageDlg('参数<备注>设置错误',mtError,[mbok],0);
      end;
      ExecSql;
         MessageDlg('入库成功',mtError,[mbok],0);
    end;上面的一段代码运行时要提示insert into 语法错误,memo字段没有发现,如果我把memo去掉,并把try
        parameters.ParamByName('Memo').Value := Memo1.text;
      except
        MessageDlg('参数<备注>设置错误',mtError,[mbok],0);
      end;
也去掉,编译就能通过,我在想是不是我的备注memo字段设置错误,因为它在数据中是备注形的,当然把备注形改成文本形可以通过编译,我想问大家,如果让memo字段保持备注形通过编译,谢谢

解决方案 »

  1.   

    那就数据库里面没有memo这个字段呗
      

  2.   

    有,我第一次做的时候,没有把memo字段加入insert into book中,编译能运行,我检验程序时,发现我保存时,我在memo1组件里写的东西没有保存起来,然后我把memo字段(备注类型),加了进去,就不能通过编译
      

  3.   

    喔,我问了高手,得出结论了,因为在delphi中,Memo是一个关键字,表示是一个类
    Declaration
    property Memo: TMemo;Category
    Memo
      

  4.   

    以前我碰到过的。
    在Access数据库中Memo为关键字,所以不能取Memo作为字段名。后面我就取了个Re。
    还有,year、value、money等都为关键字。