VB 6.0 数据写入不进数据库..

当前记录集不支持更新。这可能是提供程序的限制,也可能是选定锁定类型的限制

见图片,然后程序就卡到 rs.addnew 那里.不动了..
说明一下..seta 是
Public Function seta() As String
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset
cn = constr
cn.Open
End Function

这个过程没有问题的...
但是图片里的代码执行不走,不知道是怎么回事?
游标】】类型使用错误

rs是记录集对象,open是其方法,sql是自定义的sql语句,conn是已打开的数据库连接,A、B是记录集的游标和锁类型。

游标类型详解:

RS.OPEN SQL,CONN,A,B

参数A为设定游标的类型,其取值为:

0 仅向前游标,只能向前浏览记录,不支持分页、Recordset、BookMark 只读,且当前数据记录只能向下移动

1 键集游标,其他用户对记录说做的修改将反映到记录集中,但其他用户增加或删除记录不会反映到记录集中。支持分页、Recordset、BookMark可读写,当前数据记录可自由移动

2 动态游标功能最强,但耗资源也最多。用户对记录说做的修改,增加或删除记录都将反映到记录集中。支持全功能浏览。 可读写,当前数据记录可自由移动,可看到新增帆数记录

3 静态游标,只是数据的一个快照,用户对记录说做的修改,增加或删除记录都不会反映到记录集中。支持向前或向后移动 只读,当前数据记录可自由移动

参数B为记录集的锁定类型,其取值为:

1 锁定类型,默认的,只读,不能作任何修改 默认值,用来打开只读记录 Recordset对象以只读方式启动,无法运行AddNew、Update及Delete等方法

2 当编辑时立即锁定记录,最安全的方式 悲观锁定当数据源正在更新时,系统会暂时锁住其他用户的动作,以保持数据一致性。当记录集打开的时候将其锁定 ADLOCKPESSIMISTIC(=2) 悲观锁定 当记录集打开的时候将其锁定

3 只有在调用Update方法时才锁定记录集,而在此前的其他操作仍可对当前记录进行更改、插入和删除等 乐观锁定 当数据源正在更新时,系统并不会锁住其他用户的动作,其他用户可以对数据进行增、删、改

ADLOCKOPTIMISTIC(=3) 乐观锁定 当记录集的update事件触发时锁定

4 当编辑时记录不会被锁定,而更改、插入和删除是在批处理方式下完成的 批次乐观锁定 当数据源正在更新时,其他用户必须将CursorLocation属性改为adUdeClientBatch才能对数据进行增、删、改的操作。

Recordset类型:表示打开数据表的方式,有四种选择。数字0表示只读方式,且当前记录只能下移;数字1表示可读写方式,当前记录可自由上下移动,但不能及时看到别的用户建立的新记录,除非重新启动;数字2表示可读写方式,当前记录可自由移动,而且可以及时看到别的用户增加的新记录;数字3表示只读方式,但当前记录可以自由移动。一般选择2为好,除非为了禁止数据被修改。

  锁定类型:这个参数指定数据库的锁定功能。因为网络上的数据库都是多用户的,很可能同时有多个用户在操作数据库。为了避免错误,让同一时间只可能有一个用户修改数据,就要用锁定功能。有四种选择:数字1表示只读方式锁定,用户不能更改数据;数字2表示悲观锁定,当一个用户用rs对象开始修改数据时就锁定数据库,直到用户用rs.Update更新记录后,才解除锁定;数字3表示乐观锁定,只有在数据写入数据库中时候才锁定,不保险,慎用!数字4表示批次乐观锁定,只有在使用rs.UpdateBatch成批更新数据时候才锁定数据记录。属于很少使用的。一般地,使用悲观锁定比较安全,但是效率要低些。

常见的操作对象:

  rs.addnew :添加核轿兄一个新记录在数据表末尾。

  rs.delete :删除当前记录。

  rs.eof :判断是否已过最后记录。

  rs.bof :判断是否移过首记录。

  rs.update :数据修改生效。

  rs(“字段名”):当前记录指定字段的值。

  从数据表中提取数据:用x=rs(“字段名”)的格式,提取数据表中当前记录指定字段的值。

  向数据表中填入或修改数据:用rs(“字段名”)=数据值或变量的方式,修改当前记录指改袭定字段的值。
sql="槐蚂烂select * from 表"
rs.open sql,conn,1,3 '写入是1,3,查询只需用1,1
rs.AddNew
rs("字段"物陵)=text1.text
rs.update

你铅漏这句rs.open sql,cn这句写错了