请大家对比在VB数据库编程中,对比用SQL语句的Insert/Update等方法操作数据库与用Recordset对象的AddNew/Update/UpdateBatch等方法操作数据库,在编程效率及程序执行性能,控制方便程度等方面优劣;以及你们所从事过的公司大多采用哪种方式编程?欢迎大家多参与讨论,给分噢。

解决方案 »

  1.   

    当然用SQL语句效率高,Recordset控制方便
      

  2.   

    我觉得用SQL方便操作,用ADDNEW,UPDATE等操作简单,但我觉得在使用SQL进行修改记录时,会有一个麻烦,就是修改某条记录需要指定一个条件。不太好操作,不知道是不是我不会操作。如下:
     编号   姓名
     001    aaaa
     002    bbbb
     003    cccc
    如果我要同时修改001,aaaa 时,即编号和姓名同时修改时,使用sql的update语句必须提供一个条件,可这个唯一的条件以什么指定呢,因此,不得不在表中增加一个id号,做为唯一条件,各位大哥有什么办法能解决该问题吗 
      

  3.   

    recordset功能完全一些,占用资源多一点
    应尽量少用recordset
      

  4.   

    asp中RecordSet和SQL都用
    vb中用SQL
      

  5.   

    李洪根先生原话”如果你只是为了添加,可以用:cn.execute "insert into booktable1(number,name,addres) value ('" & Text1.Text & "','" & Text2.Text & "','" & Text3.Text & "')"  如果你还要从表中读取记录集,一般打开Rs,再Rs.addnew      当然,最终都是转换成sql insert语句。     另外,Rs.addnew 比较严谨,但是开销比insert into 大,因为要返回Rs到客户端。      Rs.addnew 不会受恶意攻击,自己拼凑sql语句易受恶意攻击“
    本人对李先生这句话有点不明白,拼凑SQL语句易受恶意攻击?受什么攻击?请大家踊跃指教
      

  6.   

    实际上进行addnew,update等操作是ado的一种黑箱技术如果大家使用过ado.net就很明白了在ado.net中是自己书写更新的command比如我们使用update方法提交一条记录实际上在ado中是定义了一个command对象进行操作的表结构  id   name   textsql="update 表 set id=?,name=?,text=? where id=? and name =? and text=?在ado中是把这个东西封装了所以说使用ado的update方法和使用sql语句是一样的但是使用sql语句更加灵活,你可以有选择性的进行数据的更新也可以根据自己的条件进行改变!!
      

  7.   

    楼上的兄弟们说的都很对呀,,我非常提倡用SQL语句,因为速度问题呀,对于那种直接操作数据库的,完全可以用一句SQL语句代替的,就最好不要用ADO,因为ADO是被封装过的,,其速度慢的程序,唉,,我就不说什么了,,如果要求必须返回结果集的话,那就只能用ADO,一条一条的读了,,没办法,除非你自己编一个数据库引擎!