大虾们帮个忙啊,下面的insert语句通不过!var
sqi:string;
uid:integer;
pn:string;
m:integer;
begin
    m:=strtoint(edit2.Text);
    uid:=strtoint(edit1.Text);
    pn:=form4.Edit1.Text;
sqi:='insert into (Userid,Papern,Patype,Goal) values("&uid&","&pn&",word,"&m&")';
////这里提示uid,m没有被使用,word是字符串,
query1.Edit;
query1.SQL.Clear;
query1.SQL.Add(sqi);
query1.Post;

解决方案 »

  1.   

    var 
    sqi:string; 
    uid:integer; 
    pn:string; 
    m:integer; 
    begin 
        m:=strtoint(edit2.Text); 
        uid:=strtoint(edit1.Text); 
        pn:=form4.Edit1.Text; 
    sqi:='insert into (Userid,Papern,Patype,Goal) values('''+inttostr(uid)+''','''+pn+''',''word'','''+m+''')'; query1.close;
    query1.SQL.Clear; 
    query1.SQL.Add(sqi); 
    query1.execsql;query1应该先连接上数据库
      

  2.   

    楼主从VB转过来的吧?
    建议先看看DELPHI基础语法...
      

  3.   

    数据库我通过object inspector设置了,最后一个参数少了inttostr,谢谢来 
      

  4.   

    你的代码应该注意以下几个地方:
        1.字符串连接符是“+”号
        2.注意在拼sql时引号的合理书写,因为字符串字段的值需要用引号扩住,所以你拼完的效果也必须是这样
        3.运用调试,将sql打出来(sql长时可以在一数据库工具中执行,它会帮你指出错误),错误一目了然
        4.Tquery控件执行非查询语句时,用exexsql方法。若是查询,用open方法。执行前不用edit
        5.在连续多次使用一个对象时,可以使用with语句,以使得代码更简练,如:
      with queyr1 do
      begin
        close;
        sql.Clear;
        sql.add(Sql);
        execsql;
      end;    最好系统地看一下delphi的语法,呵呵。
      

  5.   

    谢谢大虾指点!
    已经结贴了,没有分数给你了,sorry!