2010-06-16 2 views
1

Je tente d'ajouter un nouvel enregistrement à une table de données Visual FoxPro en utilisant un jeu de données ADO sans succès. Le code fonctionne bien sans aucune exception mais quand je vérifie le dbf après le fait il n'y a pas de nouvel enregistrement. La variable mDataPath affichée dans l'extrait de code est le chemin d'accès au fichier .dbc pour la base de données entière. Une note sur la boucle For en bas; J'ajoute le corps des e-mails entrants à ce champ MEMO donc je pensais que je devais casser l'addition de cette chaîne en morceaux de 256 caractères. Toute orientation serait grandement appréciée.Ajout d'un nouvel enregistrement à une table de données VFP dans VB.NET avec des jeux d'enregistrements 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() 

Répondre

0

Microsoft a un Knowledge Base article qui correspond exactement à votre question. La seule différence majeure entre votre code et l'exemple fourni est le paramètre BackgroundFetch dans la chaîne de connexion. Ce paramètre est activé par défaut et a été reported pour provoquer de nombreux problèmes avec les curseurs. En outre, vous pouvez passer à Visual Foxpro Ole Db driver. Le Visual Foxpro ODBC driver a été retraité vers 2000.

Questions connexes