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]

Rispondere a