with query1 do
begin
close;
sql.Clear;
sql.Add('insert money values(:a)');
ParamByName('a').asstring:=trim(edit1.text);
open;
execsql;
end;这里'a'代表的是数据库的第哪个字段?错误提示:列名或所提供的数目与表不匹配这是为什么?

解决方案 »

  1.   

    a不是字段,是参数;
    ParamByName('a').asstring:=trim(edit1.text); 意思是为名字是a的参数赋值为trim(edit1.text)
    然后将a所代表的值付给相关字段
      

  2.   

    那我如何对应到相应的字段,比如我有一数据库,其中有4个字段,
    那edit1.text赋值给'a',a 对应的是数据表中哪个字段呢?
      

  3.   

    insert into 表名(字段1,字段2,字段3,...) values(值1,值2,值3,...)execsql;
      

  4.   

    这样写对吗?????with query1 do
    begin
    close;
    sql.Clear;
    sql.Add('insert into money(name,age,tel,address)values(:a,:b,:c,:d)');
    ParamByName('a').asstring:=trim(edit1.text);
    ParamByName('b').asstring:=trim(edit1.text);
    ParamByName('c').asstring:=trim(edit1.text);
    ParamByName('d').asstring:=trim(edit1.text);
    open;
    execsql;
    end;
      

  5.   

    这样写对吗?????with query1 do
    begin
    close;
    sql.Clear;
    sql.Add('insert into money(name,age,tel,address)values(:a,:b,:c,:d)');
    ParamByName('a').asstring:=trim(edit1.text);
    ParamByName('b').asstring:=trim(edit2.text);
    ParamByName('c').asstring:=trim(edit3.text);
    ParamByName('d').asstring:=trim(edit4.text);
    open;
    execsql;
    end;
      

  6.   

    错误提示:project cc.exe raised exception clas ENoresulset with message 'Error creating cursor handle'.process stopped.我的表字段类型全是int, 是哪里出错呀????????
      

  7.   

    运行提示:error cursor handle错在哪里呀?
      

  8.   

    with query1 do
    begin
    close;
    sql.Clear;
    sql.Add('insert into money(name,age,tel,address) values(strtoint(edit1.text),strtoint(edit2.text),strtoint(edit3.text),strtoint(edit4.text))');
    execsql;
    end;
      

  9.   

    open() 方法必须要有查询结果返回。而execsql 不返回查询结果。
      

  10.   

    Crystal1981(亲亲土豆)不能解决,提示: 不允许使用'text'列名。
      

  11.   

    with query1 do begin
      close;
      sql.Clear;
      sql.Add('insert into [money]([name],age,tel,address) values(:a,:b,:c,:d)');
      ParamByName('a').value:=trim(edit1.text);  //或者试试 strtoint(edit1.text);
      ParamByName('b').value:=trim(edit2.text);
      ParamByName('c').value:=trim(edit3.text);
      ParamByName('d').value:=trim(edit4.text);
      execsql;
    end;