Private Sub Form_Load()
Dim Conn As New ADODB.Connection
Dim Rs As New ADODB.Recordset
Dim SQL As StringConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\data.mdb;Persist Security Info=False"
Conn.CursorLocation = adUseClient
Rs.Open "select * from lnc", Conn, adOpenDynamic, adLockBatchOptimistic
Set DataGrid1.DataSource = Rs
DataGrid1.Refresh
( )
End Sub
如果()中写conn.close那么datagrid中的内容会没有,如果写set conn=nothing的话就有!
如果()中写rs.close那么datagrid中的内容会没有,如果写set rs=nothing的话就有!请问两者有什么区别,具体在什么情况下用nothing 什么情况下用close,最好可以说的详细点~?往数据库中写入的数据后一定要与数据库断开连接,不然有可能会丢失数据,请问是用close,还是nothing呢?
我是个初学者,谢谢了!
Dim Conn As New ADODB.Connection
Dim Rs As New ADODB.Recordset
Dim SQL As StringConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\data.mdb;Persist Security Info=False"
Conn.CursorLocation = adUseClient
Rs.Open "select * from lnc", Conn, adOpenDynamic, adLockBatchOptimistic
Set DataGrid1.DataSource = Rs
DataGrid1.Refresh
( )
End Sub
如果()中写conn.close那么datagrid中的内容会没有,如果写set conn=nothing的话就有!
如果()中写rs.close那么datagrid中的内容会没有,如果写set rs=nothing的话就有!请问两者有什么区别,具体在什么情况下用nothing 什么情况下用close,最好可以说的详细点~?往数据库中写入的数据后一定要与数据库断开连接,不然有可能会丢失数据,请问是用close,还是nothing呢?
我是个初学者,谢谢了!
--------------------------------------------
断开数据库连接是用close如果对象不再使用,那么就把它释放掉(set ...=nothing)
这个要根据你程序的需要来确定,如果设置为全局的就在form_unload事件中关闭和释放就可以了
if conn.state=1 then
conn.close
set conn=nothnig
end ifif rs.state=1 then
rs.close
set rs=nothing
end if
if conn.state=1 then
conn.close
set conn=nothnig
end ifif rs.state=1 then
rs.close
set rs=nothing
end if
===============
conn是不用关闭的,因为还会用到它的.
rs是一定要关闭的,否则无法再次打开,open
///////////////////////////////////////////////////////////
一次较大的操作之后,如读取一个表中的所有记录,向数据库中写入数据;
都应该进行关闭连接,释放内存.
这样保证数据能够及时更新,操作的规范化.
================
您的说法我不明白,关闭连接与数据能够及时更新有什么关系呢?请指教.
一般conn是不用断开的,因为它和数据丢失没什么关系,
RS则是用于数据的读,写操作所以它和数据丢失有关,所以才要用完就关闭~
当作完操作后应该怎么处理conn,和rs呢?
可是也不好说,比如一个记录集rs显示在窗体的表格中,始终有数据,我想在整个窗体的存活期也不用关闭.随时更新到最新数据就行.
当然,如果是datagrid,是一定不能关的.如果是msflexgrid这类表格控件,因为内容一个格子一个格子填上去的,所以关了记录集也没关系的.不过如果要求随时将表格内容导成excel,则建议还是不关记录集为好,因为记录集导成excel比较方便,如果将msflexgrid导成excel,很慢的.效率太低.
不知说的对不对,请高手批示.