2010-06-16 2 views
1

Я пытаюсь добавить новую запись в таблицу данных Visual FoxPro с использованием набора данных ADO без везения. Код работает отлично, без исключений, но когда я проверяю dbf после того, как нет новой записи. Показанная в фрагменте кода переменная mDataPath - это путь к файлу .dbc для всей базы данных. Заметка о петле For внизу; Я добавляю тело входящих писем в это поле MEMO, поэтому подумал, что мне нужно сломать добавление этой строки в 256 символов Chunks. Любое руководство будет высоко оценено.Добавление новой записи в таблицу данных VFP в VB.NET с наборами записей ADO

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() 

ответ

0

У Microsoft есть Knowledge Base article, который точно соответствует вашему вопросу. Единственное существенное различие между вашим кодом и приведенным примером - установка BackgroundFetch в строке подключения. Этот параметр включен по умолчанию и был reported, чтобы вызвать многочисленные проблемы с курсорами.

Кроме того, вы можете перейти на Visual Foxpro Ole Db driver. Visual Foxpro ODBC driver был удален примерно в 2000 году.

Смежные вопросы