rs.Open SQL,cnn,..,..主要是第三个和第四个参数,各个选项都有什么作用?
如果我这个数据库想让网络中的几个用户同时操作,参数该怎么设置?
(不好意思,用的是Access数据库)

解决方案 »

  1.   

    我的这个错误是不是和参数设置有关?//--------------------错误提示-------------------//
    对象‘Open’的方法‘_Recordset'失败
      

  2.   

    参数3:游标类型,比如adOpenDynamic, adOpenKeyset
    参数4:锁定类型,比如adLockOptimistic,adLockReadOnly
    这里说不全,还是一定要有MSDN的。这种错误通常不是参数的原因。
      

  3.   

    Open 方法 (ADO Recordset)
          建立一個指標。語法recordset.Open Source, ActiveConnection, CursorType, LockType, Options參數Source 選擇性參數。此 Variant 是為一個有效的 Command 物件變數名稱、SQL 陳述式、資料表名稱、已存的程序呼叫,或是一個保存的 Recordset 的檔名。ActiveConnection 選擇性參數。不是 Variant 得到一個有效的 Connection 物件變數名稱,就是 String 包含 ConnectionString 參數。CursorType 選擇性參數。此 CursorTypeEnum 值決定提供者在開啟 Recordset 時應使用的指標類型。其可以是下列其中一種常數 (有關這些設定值的定義,請參閱 CursorType 屬性)。常數 說明 
    adOpenForwardOnly (預設) 開啟一個順向資料指標。 
    AdOpenKeyset 開啟一個索引鍵集 (keyset-type) 資料指標。 
    AdOpenDynamic 開啟一個動態資料指標。 
    AdOpenStatic 開啟一個靜態資料指標。 LockType   選擇性參數。此 LockTypeEnum 值決定提供者在開啟 Recordset 時應使用何種鎖定 (同時性)。其可以是下列其中一種常數 (有關進一步資訊,請參閱 LockType 屬性)。常數 說明 
    adLockReadOnly (預設) 唯讀,資料無法變更。 
    AdLockPessimistic 悲觀性鎖定,以資料錄計 - 提供者會進行必要的動作以確保能順利編輯資料錄,其方法通常是在編輯時立即在資料源處鎖定資料錄。 
    AdLockOptimistic 樂觀性鎖定,以資料錄計 - 提供者使用樂觀性鎖定,當您呼叫 Update 方法時,僅鎖定資料錄 
    AdLockBatchOptimistic 樂觀性批次更新 - 此為批次更新模式所需,與即時更新模式相反。 Options 選擇性參數。一個 Long 值,表示提供者在 Source 引數代表 Command 物件以外的東西時應如何評估它,否則 Recordset 應從前次儲存的檔案還原。它可以是下列其中一種常數 (有關本清單前五個常數的詳細解說,請參閱 CommandType 屬性)。常數 說明 
    adCmdText 表示提供者會將 Source 評估為指令的文字定義。 
    AdCmdTable 表示 ADO 會產生一個 SQL 查詢,從 Source 中指定的資料表傳回所有資料列。 
    AdCmdTableDirect 表示提供者會從 Source 中指定的資料表傳回所有資料列。 
    AdCmdStoredProc 表示提供者會將 Source 評估為一個預存程序。 
    AdCmdUnknown 表示 Source 引數中未知的指令類型。 
    AdCmdFile 表示保留的 (已儲存的) Recordset 會從 Source 中指定的檔案還原。 
    AdAsyncExecute 表示 Source 作非同步執行。 
    AdAsyncFetch 表示在 Initial Fetch Size 屬性中指定的初始數量被抓取後,剩下的資料列就會被非同步地抓取。如果所需的資料列未被抓取,則會凍傷主要的執行緒,直到取得所需的資料列。 
    AdAsyncFetchNonBlocking 表示在抓取時,絕不凍結主執行緒。如果未抓取到所需的資料列,則目前的資料列會自動移到檔案的尾端。 備註在 Recordset 物件上,利用 Open 方法開啟一個資料指標,這資料指標代表著從基本資料表、查詢結果或先前已儲存的 Recordset 資料錄。利用選擇性的 Source 引數來指定使用下列一種資料源:Command 物件變數、 SQL 陳述式、已儲存的程序、資料表名稱或一個完整的檔案路徑名稱。如果 Source 是檔案路徑名稱,則可以是完整的路徑 ("c:\dir\file.rst")、相對的路徑 ("..\file.rst")、或 URL ("http://files/file.rst")。ActiveConnection 引數對應於 ActiveConnection 屬性並且指定該由那一個連結來開啟 Recordset 物件。如果您傳遞一份連結定義給這個引數,ADO 便會使用指定的參數來開啟一個新的連結。您可以在開啟 Recordset 之後變更這個屬性值,以便傳送更新資料給另一個提供者,或者您可以設定這個屬性至 Nothing (在 Microsoft Visual Basic) 以中斷來自任何提供者的 Recordset。至於其它引數直接對應到 Recordset 物件的屬性 (Source、CursorType 及 LockType),其對應到屬性的引數關聯性陳述如下: Recordset 物件開啟之前,該屬性為讀/寫狀態。
    該屬性設定被使用,除非執行 Open 方法時,您傳遞這些相對應的引數。如果您傳遞一個引數,它就會取代相對應的屬性設定,而且這個屬性會根據引數值作更新。
    在您開啟 Recordset 物件之後,這些屬性則變成唯讀。
    註解 因為 Recordset 物件的 Source 屬性被設定成一個有效的 Command 物件,即使 Recordset 物件未開啟,ActiveConnection 屬性是以唯讀狀態呈現。 如果您在 Source 引數中傳遞一個 Command 物件,並且傳遞 ActiveConnection 引數,便會產生一項錯誤。因為 Command 物件的 ActiveConnection 屬性必須已經設定成一個有效 Connection 物件或連結的字串。如果您要在 Source 引數傳遞某些其它的 Command 物件,您可以使用 Options 引數來最佳化 Source 引數的運算結果。如果 Options 引數未被定義,執行效能可能會降低,因為 ADO 必須呼叫提供者以確定此引數為 SQL 陳述式、一個以存除的程序或一個資料表名稱。如果您知道您所使用的 Source 型態,請設定 Options 引數來告知 ADO 直接跳躍至相關的程式碼。如果Options 引數不符合 Source 型態,便會產生一項錯誤。如果沒有連結與資料錄及相關聯,則 Options 引數的預設值是 adCmdFile。就保留的 Recordset 物件而言,這是一般的狀況。如果資料源沒有資料錄傳回,提供者會將 BOF 及 EOF 屬性設定為 True,而且無法定義目前的資料錄位置。您仍然可以加入新的資料到這個空的 Recordset 物件,如果指標資料型態允許的話。當您已經透過一個開啟的 Recordset 物件結束動作時,請使用 Close 方法來釋放任何相關的系統資源。關閉一個物件並不會移除它的記憶體;您可以變更它的屬性設定,並且可在稍後使用 Open 方法再度開啟它。若要完全刪除一個物件的記憶體,請設定物件的變數為 Nothing。以不帶運算子方式呼叫 Open,並且在 ActiveConnection 屬性設定前,建立由附加資料欄所產生的 Recordset 一項實例到 Recordset Fields 集合物件。如果您將 CursorLocation 屬性設為 adUseClient,則您可以使用兩種方式之一,非同步取回資料列。建議的方法是將 Options 設定為 adAsyncFetch。或者,您也可以在 Properties 集合中使用 Asynchronous Rowset Processing 動態屬性,但是如果您沒有對 adAsyncFetch 設定 Options 參數,則可能造成相關的取回事件遺失。注意    只有經由 Open 方法的 Options 參數才支援 MSRemote 提供者。 
      

  4.   

    应和参数无关  通常可能是数据原上的错误,如sql的语法有误
      

  5.   

    谢谢各位,那个错误提示的原因我已经找到了,是用了ACCESS里面的关键字造成的。
    也谢谢 TBNTB(稻草龍),谢谢你费这么大的劲贴这些东西。那现在还有一个问题了,就是“如果我这个数据库想让网络中的几个用户同时操作,参数该怎么设置?”。恕我理解能力差,还是大虾们帮我一下吧。