none
在VB6使用DBF資料的問題.... RRS feed

  • 問題

  • 小弟目前有一個需求...必須要從一個線上DBF檔裡讀取資料...

    因為沒有用過Visual FoxPro...所以有些問題想請教一下....

    我的開發環境是..VB6...

    我是先new 一個 Adodb.connection,再用連線字串來連...

    Code Snippet

    Driver={Microsoft Visual FoxPro Driver};Collate=Machine;SourceType=DBF;Exclusive=No;SourceDB=X:\XX

    然後用 Recordset 去 open 資料..塞到Datagrid裡.... 可以正常讀取到資料!!

     

    Code Snippet
    Recordset.Open "SELECT * FROM X", VPFconn, adOpenStatic, adLockReadOnly

     

     不過我有一個疑問...因為這是online的資料,在讀取的同時...

    有很多其它公司開發的程式針對同一隻檔案在run讀取、寫入、刪除....

    第一次接觸DBF..不知道我這樣的連線方式..會不會對線上資料的操作造成影響...

     

    我只要讀資料..沒有要更新或刪除資料....用這樣的方式是否安全?

    另外...我有辦法在VB6裡利用程式來偵測該檔是否正被其它程式開啟嗎?

    這樣我就可以限制關閉所有相關程式才可以去讀那個檔....

    另一個方式...我可以在其它程式都有連線到那個檔的前提下,用CopyFileA -API去把檔案

    copy到其它地方再讀嗎?copy的時候會對線上資料造成影響嗎?

     

    不好意思....基本概念不是很熟...所以有這些問題...

     

    2007年4月13日 上午 03:59

解答

  • ADO 請參考:

    中文:C:\WINDOWS\Help\ADO210.CHM

    英文:"C:\Program Files\Common Files\Microsoft Shared\OFFICE11\1028\ADO210.CHM"

     

    內關於:Mode 屬性。

     

    例如中文版:mkAngryMSITStore:C:\WINDOWS\Help\ADO210.CHM::/htm/mdpromode.htm

     

    另外建議 LockType 屬性也看一下。

     

    摘錄如下:


    指示在修改 Connection 內資料可用的許可權。

    設定和傳回值

    設定或傳回下列其中一個 ConnectModeEnum 值。

    常數 說明
    adModeUnknown 預設值。指示尚未設定許可權或者無法判斷。
    adModeRead 指示唯讀許可權。
    adModeWrite 指示唯寫許可權。
    adModeReadWrite 指示讀/寫許可權。
    adModeShareDenyRead 禁止其他人使用讀取許可權開啟連線。
    adModeShareDenyWrite 禁止其他人使用寫入許可權開啟連線。
    adModeShareExclusive 禁止其他人開啟連線。
    adModeShareDenyNone 禁止其他人使用任何許可權開啟連線。

    備註

    請使用 Mode 屬性來設定或傳回在目前連線中,提供者使用的存取許可權。當 Connection 物件關閉時,您只能設定 Mode 屬性。

    Remote Data Service 用法   用在用戶端 Connection 物件時,Mode 屬性只能設定成 adModeUnknown

     

    2007年4月27日 上午 02:43
    版主

所有回覆

  • 都沒有人知道嗎...
    我查了一下資料..Visual FoxPro 在開啟DBF時..可以設定以Share的方式開啟....

    那我用adodc來開的話...連線字串像那樣子設定...是否也是Share的方式呢?

    因為只是要查詢DBF裡的資料....希望不要干援到其它程式的運作....

    2007年4月16日 上午 01:24
  • ADO 請參考:

    中文:C:\WINDOWS\Help\ADO210.CHM

    英文:"C:\Program Files\Common Files\Microsoft Shared\OFFICE11\1028\ADO210.CHM"

     

    內關於:Mode 屬性。

     

    例如中文版:mkAngryMSITStore:C:\WINDOWS\Help\ADO210.CHM::/htm/mdpromode.htm

     

    另外建議 LockType 屬性也看一下。

     

    摘錄如下:


    指示在修改 Connection 內資料可用的許可權。

    設定和傳回值

    設定或傳回下列其中一個 ConnectModeEnum 值。

    常數 說明
    adModeUnknown 預設值。指示尚未設定許可權或者無法判斷。
    adModeRead 指示唯讀許可權。
    adModeWrite 指示唯寫許可權。
    adModeReadWrite 指示讀/寫許可權。
    adModeShareDenyRead 禁止其他人使用讀取許可權開啟連線。
    adModeShareDenyWrite 禁止其他人使用寫入許可權開啟連線。
    adModeShareExclusive 禁止其他人開啟連線。
    adModeShareDenyNone 禁止其他人使用任何許可權開啟連線。

    備註

    請使用 Mode 屬性來設定或傳回在目前連線中,提供者使用的存取許可權。當 Connection 物件關閉時,您只能設定 Mode 屬性。

    Remote Data Service 用法   用在用戶端 Connection 物件時,Mode 屬性只能設定成 adModeUnknown

     

    2007年4月27日 上午 02:43
    版主