come da titolo la mia esigenza sarebbe quella di modificare il campo di un recordset ma non riesco..
Il problema è dovuto alla ResultSetConcurrency che non fa quello che dovrebbe.
Il valore che mi restituisce infatti è 1007 che corrisponde a READ_ONLY.
Nonostante forzi il suo valore ad UPDATABLE (che sarebbe 1008), non ne vuole proprio sapere ed il valore rimane sempre 1007.
Quindi nel momento in cui vado a modificare il campo con updateString viene restituito l'errore:
The result set is read-only.
Prendendo spunto da qui:
http://wiki.services.openoffice.org/wik ... ase_Access
Il codice che sto utilizzando per scorrere i record della mia tabella è questo:
Codice: Seleziona tutto
sub subAggiornaCampo(sDatabaseName as string)
Dim DatabaseContext As Object
Dim DataSource As Object
Dim Connection As Object
Dim InteractionHandler as Object
Dim Statement As Object
Dim ResultSet As Object
DatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")
DataSource = DatabaseContext.getByName(sDatabaseName)
Connection = DataSource.GetConnection("","")
Statement = Connection.createStatement()
Statement.ResultSetConcurrency = UPDATABLE 'oppure 1008 che è il corrispettivo valore ma rimane sempre 1007 quindi READ_ONLY
ResultSet = Statement.executeQuery("SELECT ""campo1"", ""campo2"" FROM ""tabella1""")
If Not IsNull(ResultSet) Then
While ResultSet.next
MsgBox ResultSet.getString(1) 'visualizzo correttamente il primo campo
MsgBox ResultSet.getString(2) 'visualizzo correttamente il secondo campo
ResultSet.updateString(2, "campo_modificato") 'questa istruzione mi restituisce l'errore...
ResultSet.updateRow(2) 'utile per aggiornare il recordset appena modificato
Wend
End If
End Sub
Qualcuno può illuminarmi ?
Grazie.