(1)我在一个窗体上放了一个保存按钮;
(2)我点保存按钮后,弹出另一个信息输入窗体,这个窗体上有个OK按钮以及一些combobox,combobox里需要输入Pipe_Name,Comp_Name(假设就输入这个名字吧)。
(3关键!)我点OK按钮后,想把这些name保存在SMSQL2000相应的数据库表里,并且当存入每个名字时,自动生成一个和名字对应的ID,数据库表是这样定义的,例:
   Pipe_ID      int   4   缺省值   编号
   Pipe_Name    char  20  缺省值   名称
我的问题是:我现在用了一个数据模块连接,里面就放了个ADOConnection,已经和服务器连上了,我要用ADO连,接下来我需在数据模块里添加什么控件,进行什么操作,还有关键是的是,我这个存储过程的代码怎么编,2个按钮(保存和OK)下都需要添加什么代码。
总结:我要问的大致就是,我现在连上数据库还需要怎么做,加什么数据库控件,还有我就是要把combobox里输入的东西存到SQL2000的表里,要求自动生成ID(这个功能MS_SQL是自带的,我看比人用过,忘记了),代码怎么编。
PS:问题描述的应该清楚,大家看出我是个新手,希望不吝赐教,我会努力学习,谢谢!

解决方案 »

  1.   

    用一个TADOQuery控件,它的Connection指向你的ADOConnection
    接下来就可以在TADOQuery控件写SQL语句了.
    如果你用过SQL,那就没问题了
    如果你不熟SQL,先看一看有关SQL的书,SQL的入门还是很简单的.
      

  2.   

    自动生成ID --> 将列的标识规范 (是标识) 设为是
    不明白为什么‘保存按钮后,弹出另一个信息输入窗体’,放在一个窗体不行吗?这么做,点保存只是弹出一窗体,还是同时保存了数据?
      

  3.   

    这个是自动增量字段的设置,字段名为ID(当然你可以改为其他名字),类型为int,在下面字段属性里,设置标识为是,种子为1,增量为1就可以了。
    如下图示:
      

  4.   

    用到的ADO控件可以是TADOQuery,将它的Connection指向你的ADOConnection。
    然后在TADOQuery里可以这样写SQL语句:假定声明ADO控件:Query:TADOQuery;   
    以下是用ADO控件保存数据的代码:
      with Query do
      begin
        Close;
        SQL.Clear;
        SQL.Add('Insert 表名 (Pipe_ID,Pipe_Name) values');
        SQL.Add(Format('%d,''%s''',[Pipe_ID值,Pipe_Name值]));   //注意Pipe_ID值对应的是%d整数值,
                                                                        // Pipe_Name值对应的是%s字符串,
                                                                        //在这两个值传入之前你要先转换为对应数据类型
         ExecSQL;
      end;
      

  5.   

    非常感谢你!
    按照你的方法,我是这么编的。
    在OK按钮下的程序:
      DataModule1.ADOQuery1.Open;
    在ADOQuery1空间下的SQL属性里,我添加了下列代码:
    with DataModule1.ADOQuery1 do
    begin
      Close;
      SQL.Clear;
      SQL.Add('Insert Comp_Pipe_Name (Pipe_ID,Pipe_Name) values');
      SQL.Add(Format('%d,''%s',[???,???]));   
      ExecSQL;
    end;
    因为我是想把,我输入到ComboBox里的值直接存到Comp_Pipe_Name这个表里,请问???处的程序怎么编,值怎么填写,我想让只输入Pipe_Name,Pipe_ID自动加1的,Comp_Pipe_Name控件和OK按钮在一个窗体上,感谢!
    PS:我开始时???处随便写了2个值,"3"和"a",但是运行后,点OK按钮说,“with附近有语法错误”,不知道怎么回事。
    谢谢!!!!!!!!!!!!!!!!!!!!
      

  6.   

    with Query do
      begin
        Close;
        SQL.Clear;
        SQL.Add('Insert 表名 (Pipe_ID,Pipe_Name) values');
        SQL.Add(Format('%d,''%s''',[Pipe_ID值,Pipe_Name值]));   //注意Pipe_ID值对应的是%d整数值,
                                                                        // Pipe_Name值对应的是%s字符串,
                                                                        //在这两个值传入之前你要先转换为对应数据类型
         ExecSQL;
      end;
      

  7.   

    谢谢你,看得出你是个高手,能不能帮我下,呵呵。 
    我在OK按钮下的程序: 
      DataModule1.ADOQuery1.Open; 
    在ADOQuery1空间下的SQL属性里,我添加了下列代码: 
    with DataModule1.ADOQuery1 do 
    begin 
      Close; 
      SQL.Clear; 
      SQL.Add('Insert Comp_Pipe_Name (Pipe_ID,Pipe_Name) values'); 
      SQL.Add(Format('%d,''%s',[???,???]));  
      ExecSQL; 
    end; 
    因为我是想把,我输入到ComboBox里的值直接存到Comp_Pipe_Name这个表里,请问???处的程序怎么编,值怎么填写,我想让只输入Pipe_Name,Pipe_ID自动加1的,Comp_Pipe_Name控件和OK按钮在一个窗体上,感谢! 
    PS:我开始时???处随便写了2个值,"3"和"a",但是运行后,点OK按钮说,“with附近有语法错误”,不知道怎么回事。 
    谢谢!!!!!!!!!!!!!!!!!!!!
      

  8.   

    OK按扭后不用DataModule1.ADOQuery1.Open; 因为你是插入,没有返回值。用 execsql;
     
    DataModule1.ADOQuery1.Close; 
    DataModule1.ADOQuery1.SQL.Clear; 
    DataModule1.ADOQuery1.SQL.Add('Insert into 表名(字段1,字段2...) values(值1,值2..)');//这里要into
    DataModule1.ADOQuery1.ExecSQL; 
      

  9.   

    谢谢你啊,我就是想知道values(值1,值2..)怎么取的啊,我是输入到ComboBox里,想直接存到Comp_Pipe_Name这个表里!这里怎么编
      

  10.   

    谢谢你啊,我就是想知道Pipe_Name值怎么取的啊,我是输入到ComboBox里,想直接存到Comp_Pipe_Name这个表里!这里怎么编
      

  11.   

    干嘛还要控件,直接ADOConnection.execute('insert into xxxxxx')
    换控件吧。DBComboBox,你直接输入,数据库里直接变。
    加个DataSource就是了。
      

  12.   

    好想法,谢谢!
    用ADO可以用DB—ComboBox这个控件吗,如果可以,那还真好!。我想输入DBComboBox,也就是Pipe_Name时,Pipe_ID跟着变,请问这里怎么处理呢??
    谢谢!