1

運が悪かったADOデータセットを使用して、VisualFoxProデータテーブルに新しいレコードを追加しようとしています。コードは例外なく正常に実行されますが、事後に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 driverに切り替えることもできます。Visual Foxpro ODBC ドライバーは、2000 年頃に廃止されました。

于 2010-11-04T17:05:49.710 に答える