ho una macro BASIC in calc che aggiorna una tabella del database da un record di calc.
Ho eseguito la macro diverse volte con successo, ma gli ultimi dati che ho cercato di esportare mi hanno dato un errore di runtime nell'istruzione sSql3:
Il campo a cui si riferisce l'errore contiene la parola emungimento (Rinnovo concessione all'emungimento n. )Errore di runtime BASIC. Si è verificata un'eccezione
Type: com.sun.star.sdbc.SQLException
Message: Termine inaspettato: EMUNGIMENTO in statement [emungimento]
Non capisco perché mi dia quest'errore.
Inoltre l'istruzione sSql5, che fa riferimento a un campo contenente delle coordinate, va a buon fine solo se nella tabella del database il campo è formattato come testo.
Codice: Seleziona tutto
Dim oDBC As Object, Doc As Object
Dim oBD As Object, Sh As Object
Dim oConexion As Object, c As Object
Dim oDeclaracion As Object
Dim Database As String
'-----
Dim sSql3 As String, Dim sSql5 As String
Dim oggetto As String, Dim coordx As String
Doc = ThisComponent
Sh = Doc.Sheets.GetByIndex(0)
c = Sh.createCursor
c.gotoEndOfUsedArea(false)
Database = "ricerca_idrica"
oggetto = Sh.getCellByPosition(3, 1 ).String
coordx = Sh.getCellByPosition(5, 1 ).String
sSql3 = " UPDATE ""tPratiche"" SET ""oggetto"" = '" & oggetto & "' WHERE ""codsuape"" = '" & codsuape & "' "
sSql5 = " UPDATE ""tPratiche"" SET ""coordx"" = '" & coordx & "' WHERE ""codsuape"" = '" & codsuape & "' "
oDBC = createUnoService("com.sun.star.sdb.DatabaseContext")
oBD = oDBC.getByName(Database)
oConexion = oBD.getConnection("","")
oDeclaracion = oConexion.createStatement()
oDeclaracion.executeUpdate(sSql3)
oDeclaracion.executeUpdate(sSql5)