Query1.SQL.Add('Values(001,"Tom",20,"male")'); 
Query1.ExecSQL;

解决方案 »

  1.   

    chechy(我爱洁洁) 的代码是在字符串中用两个:''代表'
      

  2.   

    可否问问Query1.ExecSQL;是什么意思?有何作用?
      

  3.   

    将该sql语句提交数据库执行。
      

  4.   

    那没有Query1.ExecSQL不也执行了吗?请教!
      

  5.   

    query1.Cachedupdates:=true;
    query1.Requestlive:=true;
    query1.insert;
    query1.fieldbyname('id').asstring;='str';
    query1.post;
      

  6.   

    我用了Query1.SQL.Add('Values(001,"Tom",20,"male")'); 
    好象还是不行。
    报错说什么001是字段名,只能用常量,表达式,变量等等。
    我用的是SQL 2000
      

  7.   

    这样写
    Query1.SQL.Add('Values(001,''Tom'',20,''male'')');
      

  8.   

    我检查了,字段没有问题。
    事实上,我是把001的那个字段设成的Char(因为有时包括字母)
    实际使用是:
    Query1.SQL.Add('Values("CSD001","Tom",20,"male")'); 
    错在哪里?
      

  9.   

    首先将Query1(控件名)的属性RequestLive设置为True然后有2种方法
    1、   Query1.Append;
          Query1.FieldByName('项').value:='你要插入的值';
          Query1.Post;2、    with Query1 do 
                begin
                   if Active then
                         Close;
                 SQL.Text:='insert TableName(field1.field2,field3...)   values(value1,value2,value3,....) '
                 Open;   
                end;
      

  10.   

    sorry!上面有点错误,这一行应为
       SQL.Text:='insert into TableName(field1.field2,field3...) values(value1,value2,value3,....) ' 
      

  11.   

    如果有变量的话,可以用
     Query1.Sql.Text:='insert intto tablename values(:value1,:value2,..)
     Query1.ParamByname('value1').asstring:=变量1
     Query1.ParamByname('value2').asinteger:=变量2
     as后面可以根据字段的不同跟各种数据类型,具体的还是delphi的帮助仔细看看吧!
      

  12.   

    还是没用,真不明白到底怎么了!
    是不是SQL 2000要设置?
      

  13.   

    没有 Query1.ExecSQL 就不能执行吗?
      

  14.   

    Query1.SQL.Add('Values("001","Tom",20,"male")'); 
    Query1.ExecSQL;
      

  15.   

    就是引号惹得祸:应该为:
    Query1.SQL.Add('Insert into Userinf'); 
    Query1.SQL.Add('Values(001,'''+'Tom'''+',20,'''+'male'')'); 
      

  16.   

    还不行呀?
    1、 
    Query1.Append; 
    Query1.FieldByName('字段名').value:='你要插入的值'; 
    Query1.Post; 2、 with Query1 do 
    begin 
    Close; 
    SQL.Text:='insert TableName(field1.field2,field3...) values(value1,value2,value3,....) ' 
    Open; 
    end;
      

  17.   


    with Query1 do
    begin
     close;
     sql.clear;
     SQL.Add('Insert into Userinf'); 
     SQL.Add('Values(''001'',''Tom'',20,''male'')'); //都是单引号
     execsql;
    end;
      

  18.   

    ===================================
    在执行下列语句时:
    SQL.Clear;
    SQL.Add('Insert Into Question Values("JSJ100","选择题","适 中","CPU 是什么?","中央处理器","方 逵","2002-02-04","2002-02-04","计算机图形学")');
    ExecSQL();  //分步调试时出错的语句,到这一步出错了!
    错误信息:
    [Microsoft][ODBC SQL Server Driver][SQL Server]在此上下文中不允许使用'JSJ100'。
    此处只允许使用常量,表达式或变量。不允许使用列名?。到底是什么问题呀!
      

  19.   

    在执行:
    SQL.Clear;
    SQL.Add('Insert Into Question Values("DDD","选择题","适 中","CPU 是什么?","中央处理器","方 逵","2002-02-04","2002-02-04","计算机图形学")');
    ExecSQL();
    时分步调试;
    出错语句是:ExecSQL();[Microsoft][ODBC SQL Server Driver][SQL Server]在此上下文中不允许使用'DDD'。
    此处只允许使用常量,表达式或变量。不允许使用列名?。
      

  20.   

    query.sql.add('insert into db (db_f1,db_f2,db_f3) values(:f1,:f2,:f3)');
    query.parambyname('f1').asstring:='';
    ..
    ..
    query.prepare;
    query.execsql;
      

  21.   

    同志改用下面试试
    SQL.Clear;
    SQL.Add('Insert Into Question Values('''JSJ100''','''选择题''','''适 中''','''CPU 是什么?''','''中央处理器''','''方 逵''','''2002-02-04''','''2002-02-04''','''计算机图形学''')');
    ExecSQL();  //分步调试时出错的语句,到这一步出错了!
    我想可能是分号的原因!
      

  22.   

    把你的SQl语句打印出来,如:Showmessage(sql.text); 再将该语句拿到SQl server 的Query Analyzer里执行,差错
      

  23.   

    我觉得我的SQL语句应该没有问题。因为它可以在SQL Server中正常执行。但是在Delphi中用不了。