首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

求解VB6 数据库有关问题

2013-01-21 
求解VB6 数据库问题!小弟做硬件的,工作需要,要维护以前的上位机软件,VB6写的。遇到数据库问题。代码如下---

求解VB6 数据库问题!
小弟做硬件的,工作需要,要维护以前的上位机软件,VB6写的。遇到数据库问题。
代码如下
'-----------------------------------------
 Set db = OpenDatabase(App.Path + "\db1.mdb")
 Set rs = db.OpenRecordset("select * from student where stuid=1")
 If rs.EOF Then
     MsgBox "数据库出错", vbExclamation, "系统提示"
      db.Close
      end
  End If
rs.Edit
rs.Fields("name") = 新的名字
rs.update
rs.close
db.close
'___________________________________________________________________________________________
问题1:我如何知道rs.update 操作成功,那条记录 的name值已经更改。难不成我在读一次student 表。
问题2:数据操作完成后,需要用rs对象需要关闭吗(rs.close),只关闭db对象就可以吗(db.close)
[解决办法]
我的看法是,只能再读一次,用select检索一下
[解决办法]
你发错区了吧?net和6.0读取数据库还是有区别的,代码都不一样,我以前也用6.0,可你这样的问题,特别是第二个,我都不记得了....

第一个问题,你更新完了之后,是要再取一次的.
[解决办法]
1、根据我的经验,rs.update后,只要不报错,就应该写成功了。我还没有遇到过不报错并且写失败的例子。
2、每次写完,必须要对rs和db两个对象都关闭,并且释放。rs和db是两个对象,必须同时关闭。
rs.close
db.close
set rs = nothing
set db = nothing

[解决办法]
private sub subname()
Dim blnRetry
on error goto Errupdate
do while
rs.update
if not blnRetry then exit do
loop
on error goto 0
....
exit sub
errupdate:
if msgbox err.number &  err.description,vbRetryCancel=vbRetry then blnRetry=True
end sub
第二问:
db是rs的数据源,db关闭,rs必然无效出错。所以,考虑数据安全和系统资源释放,无论是哪个教材,记录集和数据集的打开和关闭都是遵循先开后关的原则,即:
db.open
rs.open
...rs.close
...db.close
当然,你可以先关闭记录集,而数据库保持打开状态,以备创建新的记录集,反之则不可。无论是哪种数据库,这可能是大原则,不管你是不是.net。

另外,在VB中,关闭数据集和数据库的方法有两种:
rs.close
set rs = nothing
db.close
set db =nothing
其中:close命令只是关闭,而设置为nothing在关闭的同时释放所占用的资源。
不写程已经很久了,记得大概是这个意思,希望对你有帮助。
[解决办法]
程序没有抛出异常,你怎么知道它就失败?

比如说你把一个图片保存成文件,难不成你都要重新读取图片然后人工用眼睛确认一遍才放心?


[解决办法]
我也来学习下!

热点排行