数据库是否打开的标记是什么?

解决方案 »

  1.   

    Dim rs_findborrow As New ADODB.Recordset
    Dim sql As String
    sql = "读者编号='" & Trim(Text1.Text & " ") & "'"
    rs_findborrow.CursorLocation = adUseClient
    rs_findborrow.Open sql, conn, adOpenKeyset, adLockPessimistic
    Set DataGrid1.DataSource = rs_findborrow上面语句为打开数据库并显示在表格DATAGRID1中问题:rs_findborrow.CursorLocation = adUseClient 是什么意思,有时看见别人的代码不用。可在我程序中如不用,出现:下标越界
    上述代码可反复打开数据库,如去掉rs_findborrow.CursorLocation = adUseClient,反复打开数据库会报错。请问:如何打开数据库,不要关闭,可反复打开。上面代码是个什么机制?我是初学者,请教大家,谢谢了。
      

  2.   

    :rs_findborrow.CursorLocation   =   adUseClient 
    '采用客户端游标去访问,如果不写,则默认是服务端游标,如果是access数据库一定会出错。下标越界跟这话完全没有任何关系,至于你反复开关是你的问题,打开后就关闭,这是常识。
      

  3.   

    if rs_findborrow.state<>adstateclosed then rs_findborrow.close
    rs_findborrow.Open ...
      

  4.   

    我是搞VF的,数据表可在多个分区中打开,不要关闭,可跳区选择数据表,
    套在VB中不合适,看来VB中打开数据库,运行相关操作后就得闭,要用再打开 。好象很啰嗦。
      

  5.   

    “打开后就关闭”有了问题----
    用起初的代码打开数据库后,并设好数据源Set DataGrid1.DataSource = rs_findborrow
    如果关闭数据库rs_findborrow.close 则datagrid1中无数据。
      

  6.   

    那你不知道用多个recordset去读吗?Connection只有一个,代表一个用户独占但是recordset可以有多个啊?
      

  7.   

    对本例而言,我有点不明白:连接connection已打开
    在窗口中有datagrid1、text和command1三个控件command1的click事件代码:
    Dim   rs_findborrow   As   New   ADODB.Recordset 
    Dim   sql   As   String 
    sql   =   "读者编号='"   &   Trim(Text1.Text   &   "   ")   &   "'" 
    rs_findborrow.CursorLocation   =   adUseClient 
    rs_findborrow.Open   sql,   conn,   adOpenKeyset,   adLockPessimistic 
    Set   DataGrid1.DataSource   =   rs_findborrow 当改变text1值时,表格内容会改变。但是command1的click事件中并没有用rs_findborrow.close
    但并不报错,为什么?因为我以前编程时,不关闭数据库,再重复打开会报借,在此例中却不会,为什么?