VB6.0中如何把數組存如數據庫中

這幾天在做一個數據採集的上位機軟件,設想把採集的數據存入數據庫(每次採樣1000個數據)。網上找了一下沒有很好的答案,今天花了點時間做了個試驗程序,代碼如下:(調試通過)

 

'先在Access表中建一個字段類型爲OLE的字段

    Dim adoConn As New ADODB.Connection
    Dim ListRS As New ADODB.Recordset
    Dim a(1000)
    Dim b(1000)

Private Sub Form_Load()

Dim c as Double
adoConn.Open "連接數據庫字串。。。"
    For i = 0 To 1000
        c = -i / 100
        'a()爲要存的數組,數據類型爲文本。
        '本想做二進制的但是在vb中Double數據用Hex()轉換有問題,還沒找到簡潔的方法,無奈只好用文本格式(固定長度)。
        '注意:必須固定長度
        a(i) = IIf(c >= 0, Format(c, "+000.000"), Format(c, "000.000"))
    Next
End Sub

' 保存數組到數據庫
Private Sub Command1_Click()
        strsql = "select * from a"
        ListRS.Open strsql, adoConn, adOpenStatic, adLockOptimistic
        ListRS.AddNew        '新增一條記錄
        For i = 0 To UBound(a)
                ListRS.Fields("testdata").AppendChunk a(i)   'a()是數組名
        Next i
'        ListRS.Fields("testdata").Value = a
        ListRS.Update
 

          '完成後關閉對象
        ListRS.Close

End Sub

'從數據庫中讀出存儲的數組
Private Sub Command2_Click()
    strsql = "select * from a"
    ListRS.Open strsql, adoConn, adOpenStatic, adLockOptimistic
    PackageSize = 16 '每個數據的長度
    lngActualSize = ListRS.Fields("testdata").ActualSize '數據庫中二進制字段的數據長度
    lChunkCount = lngActualSize \ PackageSize            '求出數據的個數
    '逐個讀出存儲在數據庫中的數據
    For i = 0 To lChunkCount - 1
    b(i) = ListRS.Fields("testdata").GetChunk(PackageSize)
    Next
   
    For i = 0 To 1000
        Debug.Print b(i)
    Next
    ListRS.Close
End Sub

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章