1

我正在尝试使用 ADO 数据集向 Visual FoxPro 数据表添加一条新记录,但没有成功。代码运行良好,没有例外,但是当我在没有新记录之后检查 dbf 时。代码片段中显示的 mDataPath 变量是整个数据库的 .dbc 文件的路径。底部关于 For 循环的注释;我正在将传入电子邮件的正文添加到此 MEMO 字段中,因此认为我需要将此字符串的添加分解为 256 个字符的块。任何指导将不胜感激。

cnn1.Open("Driver={Microsoft Visual FoxPro Driver};" & _
                "SourceType=DBC;" & _
                "SourceDB=" & mDataPath & ";Exclusive=No")

Dim RS As ADODB.RecordsetS = New ADODB.Recordset       
RS.Open("select * from gennote", cnn1, 1, 3, 1)
RS.AddNew()

'Assign values to the first three fields
RS.Fields("ignnoteid").Value = NextIDI 
RS.Fields("cnotetitle").Value = "'" & mail.Subject & "'"
RS.Fields("cfilename").Value = "''"

'Looping through 254 characters at a time and add the data
'to Ado Field buffer
For i As Integer = 1 To Len(memo) Step liChunkSize
            liStartAt = i
            liWorkString = Mid(mail.Body, liStartAt, liChunkSize)
            RS.Fields("mnote").AppendChunk(liWorkString)            
 Next

'Update the recordset
RS.Update()
RS.Requery()
RS.Close()
4

1 回答 1

0

Microsoft 有一篇与您的问题完全匹配的知识库文章。您的代码与提供的示例之间的唯一主要区别是连接字符串中的BackgroundFetch设置。默认情况下,此设置处于启用状态,并且据报道会导致游标出现许多问题。

此外,您可能希望切换到Visual Foxpro Ole Db 驱动程序Visual Foxpro ODBC 驱动程序在 2000年左右退役。

于 2010-11-04T17:05:49.710 回答