使用OLEDB訪問ACCESS的幾點經驗

來源:互聯網
上載者:User
1.取得序號(順序號)
如果習慣了ORACLE的Sequence,到ACCESS下使用自動編號欄位還是會不習慣:如何取得新的編號值,如何拿他來做關聯欄位值?
可以做如下一個函數:
  /**/''' <summary>
    ''' 取得序列的下一值,用於處理自動編號欄位,庫表結構為SeqTable(IDField,AA),AA為數字型欄位
    ''' </summary>
    ''' <param name="strSeqTable"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Shared Function GetSeqValue()Function GetSeqValue(ByVal theOleDbAccess As OleDbAccess, ByVal strSeqTable As String) As Object
        Try
            Dim aCon As OleDbConnection = CType(theOleDbAccess.OpenConnection(CType(aCon, IDbConnection)), OleDbConnection)
            Dim strSQL1 As String = "insert into " & strSeqTable & "(AA)values(1)"
            Dim strSQL2 As String = "SELECT @@IDENTITY"
            Dim aCmd As New OleDbCommand(strSQL1, aCon)
            aCmd.ExecuteNonQuery()
            aCmd.Dispose()
            Dim aCmd2 As New OleDbCommand(strSQL2, aCon)
            Return aCmd2.ExecuteScalar()
        Catch ex As Exception
            modOutputLog.OutputLog(ex)
            Throw ex
        End Try
    End Function

2.欄位名的保留字
開始從ORACLE轉到ACCESS,因為要做一單機版程式,並要導資料到ORACLE上,因此採用了和ORACLE庫表一樣的結構,如下:
UID,PhoneNo,Address,Password
一切SELECT都正常,我手工往裡加了資料,訪問也正常,直到我想從ORACLE導資料並insert到ACCESS時,出錯了:無效的INSERT語句!
我更新用的是oleDBDataAdapter產生的SQL來更新的,到我改成手工的:
insert into AAAA(UID,PhoneNo,Address,Password) values(xxxxxxx)也還是不行。
我用上面的SQL在ACCESS中構造了一個查詢,又是可以執行的,怪了。
後來一個欄位一個欄位去掉,才發現,原來PASSWORD是OLEDB的一個保留字,拿來做欄位名,寫在SQL中要轉義,寫成
insert into AAAA(UID,PhoneNo,Address,[Password]) values(xxxxxxx),就正常了。

這幾個問題忙得實在不太值,都是一些約定上的東西,要自己一點一點分析出來,效率太低了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.