现在我主要的疑问就是我从编辑框中接受输入的内容是字符串,怎么才能把该内容插入到数据库的各种类型的字段里面啊?如我要插入一个在表中是数值型的,是用strtofloat将其转换一次吗?
文本类型的可以直接用字符串类型的写入数据库吗?请指教 我写的代码如下,但是执行时说什么字段容量少,请减少插入的内容,请问到底该怎么解决啊?with ADOQuery1 do
    begin
      Close;
      SQL.Clear;
      
SQL.Add('Insert Into 上机用户信息表(上机用户编号,上机用户姓名,所属群编号,金额,备注)');
//只有金额是数值型的,其它都是文本类型
SQL.Add('Values("ADOQuery1.edit1.Text","ADOQuery1.edit2.Text","ADOQuery1.edit3.Text",');
SQL.Add('"ADOQuery1.edit4.Text","ADOQuery1.edit4.Text")');      ExecSQL;
      Close;
      SQL.Clear;
      SQL.Add('select * from 上机用户信息表');
      Open;
    end;
请问到底哪里错了?谢谢!

解决方案 »

  1.   

    ("ADOQuery1.edit1.Text","ADOQuery1.edit2.Text","ADOQuery1.edit3.Text",');
    SQL.Add('"ADOQuery1.edit4.Text","ADOQuery1.edit4.Text")');错在这句应该是为 + ADOQuery1.edit1.Text +''',''' +ADOQuery1.edit2.Text之类的字符串相加ADOQuery的SQL是一个Strings,
      

  2.   

    同意 knife_s(人生长恨水长东) ,因为只有加'''才是字符串'''
      

  3.   

    也可以这样  ADOQuery1.CommandText := 'select * from 上机用户信息表 where 1 = 2') ;
      ADOQuery1.New ;
      ADOQuery1.FieldValues['字段名'].Value := "" ;
      ADOQuery1.FieldValues['字段名'].Value := "" ;
      ......
      ADOQuery1.Post ;
      

  4.   

    谢谢大家啊,还有就是这个问题
    现在我主要的疑问就是我从编辑框中接受输入的内容是字符串,怎么才能把该内容插入到数据库的各种类型的字段里面啊?如我要插入一个在表中是数值型的,是用strtofloat将其转换一次吗?
    文本类型的可以直接用字符串类型的写入数据库吗?
    到底数据库中那些字段的类型与外部什么关系啊?
      

  5.   

    插入数值型的,可以用strtofloat转换呀。反正你数据库里面是什么类型的,你就用什么类型转换呀
      

  6.   

    with AdoQuery1 do
      begin
       SQL.Clear;
       SQL.Add('insert into 表(字段1,字段2,字段3) values(:x1,:x2,:x3)');  
       Parameters[0].value:=Edit1.Text;
       Parameters[1].value:=Edit2.Text;
       Parameters[2].value:=StrToFloat(Edit3.Text);
       ExecSQL;
     end;
    =====
    上面的示例中假设只有字段3是数字型