服务器:create stored procedure sp_sample @firstpara int ,@secondpara int as  
insert into tablename values @firstpara,@secondpara
客户端:
storedprocddure1.prepare;
storedprocedure1.parambyname(@firstpara).asinteger:=strtoint(edit1.text);
storedprocedure1.parambyname(@secondpara).asinteger:=strtoint(edit1.text);
storedprocedure1.open;

解决方案 »

  1.   

    服务器:create stored procedure sp_sample @firstpara int ,@secondpara int as 
    insert into tablename values @firstpara,@secondpara
    客户端:
    query.close;
    Query.SQL.Clear;
    Query.SQL.add('insert into tablename(field1,field2) values(:v1,:v2)');
    Query.parambyname(':V1').asinteger:=strtoint(edit1.text);
    Query.parambyname(':v2').asinteger:=strtoint(edit1.text);
    Query.ExecSQL;
     
     
     
      

  2.   

    query.close;
    Query.SQL.Clear;
    Query.SQL.add('insert into tablename(field1,field2) values(:v1,:v2)');
    Query.parambyname(':V1').asinteger:=strtoint(edit1.text);
    Query.parambyname(':v2').asinteger:=strtoint(edit1.text);
    Query.ExecSQL;
     
     
     
      

  3.   

    用组件如TTable、TQuery及SQL语句都可以,仅要注意后端的数据库SQL SERVER的设置就可,当然C端要注意错误的检测。
      

  4.   

    有本书非常好,是李维写的《delphi3入门到精通》宇航出版社,是讲数据库开发比较好的一本书
      

  5.   

    最好还是用Media或第三方控件以Client/Server模式编程。这样可以免除维护客户端的麻烦。
      

  6.   

    对你来说,修改的仅仅是数据源而已啊!
    记得在带参数时要使用
    SQL.Unprepare
    SQL.Prepare
      

  7.   

    不好意思,灌水!
    你可能是想怎样解决多用户并发问题,不知道我有没猜对?如果用SQL,在Delphi中可以用TQuery构件达到,只要往TQuery的SQL属性中加入SQL语句(insert into ...),然后执行它的ExecSQL方法即可。
    也可以用Cursor的方法,用TTable.AppendField(...)然后TTable.Post。也许你真正想解决的是怎样使键值不冲突,如果用TQuery,你可以写成这样:
    insert into tablename (keyfieldname, ...) values ((select max(keyfield) from tablename)+1, ...)
    (不好意思,我没试过在将子查询的结果特别是它的运算结果放在SQL语句中,我明天就去试)如果都不行,我们一贯采取的策略是先取得最大的键值,然后变化(数值就是+1),用于新的键值。