Premessa : Fino alla ver. 2.3.1 funzionava tranquillamente.
Faccio una Insert via macro in una tabella con 2 campi integer che
formano la PK, questa non ritorna errori ma non inserisce i dati nella
tabella, allora faccio la prova e reinserisco gli stessi dati, sorpresa!
mi ritorna l'errore di key duplicata, molto bene e' l' errore che mi
aspettavo ma, ma i dati nella tabella non ci sono, che stranezza, HSQLDB
si comporta come se i dati sono stati immessi e se li reimmetto ritorna
key duplicata ma i dati non sono presenti nella tabella.
Provando dal Menu-Tools-SQL a fare una Insert questa va a buon fine.
Allego il codice, la tabella contiene solo 2 campi Integer che formano
la PK e ricordo che il codice funzionava tranquillamente fino alla vers.
2.3.1
Ciao Jack
p.s. Calate un velo sulla gestione degli errori, in Starbasic non saprei
che altro fare.
--
Email.it, the professional e-mail, gratis per te: http://www.email.it/f
Sponsor:
La musica migliore tutta sul tuo cellulare. Scegli le tue hit!
Clicca qui: http://adv.email.it/cgi-bin/foclick.cgi?mid=7751&d=3-4
Option Explicit
Sub InserisciRicette
___
Dim oDatabaseContext as Object, oDataSource as Object, oConnection as Object,
oStatement as Object
Dim oColTabellaRicette as Object, oColTabellaVini as Object
Dim iCodRicetta as Integer, iCodVino as Integer
Dim sInsert as String
___
'Tramite createUnoService creo un contesto di database per fare le operazioni
oDatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")
'creo un dataSource per la sorgente dati OOoRicettario
oDataSource = oDatabaseContext.getByName("MonsterChef")
'lascio i parametri di connessione vuoti visto che non uso account e password
oConnection = oDataSource.GetConnection("","")
'Attraverso l'oggetto Connection creo uno Statement che mi servira' per
eseguire le query
oStatement = oConnection.createStatement()
On Error GoTo ErroreRicetta
oColTabellaRicette =
ThisComponent.DrawPage.Forms.formRicette.tblRicette.getByIndex(0)
iCodRicetta = oColTabellaRicette.CurrentValue
if iCodRicetta = 0 then
msgbox ("Non hai selezionato nessuna ricetta",+64,"Messaggio Utente"
Exit Sub
End if
oColTabellaVini = ThisComponent.DrawPage.Forms.formVini.tblVini.getByIndex(0)
iCodVino = oColTabellaVini.CurrentValue
if iCodVino = 0 then
msgbox ("Non hai selezionato nessun tipo di vino",+64,"Messaggio Utente"
Exit Sub
End if
sInsert ="INSERT INTO ""tb_ricette_vini"" ( ""idVino"", ""idRicetta"" ) VALUES
( '"+iCodVino+"','"+iCodRicetta+"' )"
oStatement = oConnection.createStatement()
oStatement.executeUpDate(sInsert)
oConnection.close
'Ricarico i dati nel formulario formViniRicette per vedre l' aggiunta fatta
ThisComponent.DrawPage.Forms.formVini.formViniRicette.reload
On Error GoTo 0
Exit Sub
ErroreRicetta:
if Err = 0 OR 1 then ' errore gestito
MsgBox ("Hai gia inserito questa ricetta",+64,"Messaggio Utente"
Exit sub
end if
End Sub
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]