以下语句在我用SQL数据库时能正常运行,但转到Access时提示错误:“Insert Into 语法错误”。请问是为何?注明:Book2不存在。
ADOQuery1.SQL.Text:='Insert Into BOOK2(Name,Money) Values(:Name,:Money)';
ADOQuery1.Parameters.ParamByName('Name').Value:=Edit1.Text;
ADOQuery1.Parameters.ParamByName('Name').Value:=StrToFloat(Edit2.Text);
ADOQuery1.ExecSQL;  //错误提示在此;

解决方案 »

  1.   

    哦错了》》》》》》》》》    Book2已存在
      

  2.   

    Money没有设定值 :
    ADOQuery1.Parameters.ParamByName('Money').Value:=StrToFloat(Edit2.Text);
      

  3.   

    'Insert Into BOOK2([Name],Money) Values(:Name,:Money)'
      

  4.   

    ADOQuery1.Parameters.ParamByName('Money').Value:=StrToFloat(Edit2.Text);
    看看你的字段的数据类型有没有问题?
      

  5.   

    ADOQuery1.SQL.Text:='Insert Into BOOK2(Name,Money) Values(:Name,:Money)';
    ADOQuery1.Parameters.ParamByName('Name').Value:=Edit1.Text;
    ADOQuery1.Parameters.ParamByName('Money').Value:=StrToFloat(Edit2.Text);
    ADOQuery1.ExecSQL;
      

  6.   

    写的太急了,写错了几个地方,不好意思,下面的字段及类型只是个例子ADOQuery1.SQL.Text:='Insert Into BOOK2(BookName,Money) Values(:Name,:Money)';
    ADOQuery1.Parameters.ParamByName('BookName').Value:=Edit1.Text;
    ADOQuery1.Parameters.ParamByName('Money').Value:=StrToFloat(Edit2.Text);
    ADOQuery1.ExecSQL;  //错误提示在此;
      

  7.   

    好象没有错误啊,我写很多都是这样的
    看看连接对不对
    ADOQuery1.Connection:=.....
    ADOQuery1.close;  
    ADOQuery1.sql.clear;
    ADOQuery1.SQL.Text:='Insert Into BOOK2(BookName,Money) Values(:Name,:Money)';
    ADOQuery1.Parameters.ParamByName('BookName').Value:=Edit1.Text;
    ADOQuery1.Parameters.ParamByName('Money').Value:=StrToFloat(Edit2.Text);
    //和ADOQuery1.Parameters.ParamByName('Money').Value:=Edit2.Text;没有区别
    ADOQuery1.ExecSQL;
      

  8.   

    'Insert Into BOOK2(BookName,Money) Values('''+Name+''''+',''+Money+''')'
      

  9.   

    s:=Edit1.Text;
    f:=StrToFloat(Edit2.Text);
    ADOQuery1.SQL.Text:='Insert Into BOOK2(BookName,Money) Values(s,f)';
    ADOQuery1.ExecSQL;
      

  10.   

    with SaveQry do
        begin
          Connection := FrmDm.AdoStandard;
          Close;
          Sql.Clear;
          Sql.Add('...');
          Prepared;
          Open;
          Last;
          Edit;
          FieldByName('Photo').AsString := BlobContentToString(TmpPhotoFileName);
          Post;
        end;
    一个例子,可以参考一下.
      

  11.   

    是Money的数据类型问题,Access里面不支持数字的,插入数字换种方式用APPEND
    或者用SQL就可以拉
      

  12.   

    var 
      Name:String;
      Money:Float;
    begin
      Name:=Edit1.Text;
      Money:=StrToFloat(Edit2.Text);
      ADOQuery1.SQL.Text:='Insert Into BOOK2(BookName,Money) Values('+''''+Name+''''+','+''''+Money+''')';
      ADOQuery1.ExecSQL;  
    end;
      

  13.   


                                                                       __________
                                                                      /          \
                                                                     |           |
    ADOQuery1.SQL.Text:='Insert Into BOOK2(BookName,Money) Values(:Name,:Money)';|
    ADOQuery1.Parameters.ParamByName('BookName').Value:=Edit1.Text;              |
    ADOQuery1.Parameters.ParamByName('Money').Value:=StrToFloat(Edit2.Text);     |
    ADOQuery1.ExecSQL;                                                          /
                                           越看越糊涂,这个参数好象没有赋值<---
      

  14.   

    先清除ADOQuery1.SQL.clear,还有看看你的数据类型啊