Salve a tutti e benvenuto a Gambas 3 FINALE
,
Ci sarebbe un problemino con sqlite.. ve lo espongo.
Ho creato un DB (sqlite3) con due tabelle: Conti e MovimentiConti.
La tabella
Conti è così composta:
CREATE TABLE Conti
(
id INTEGER PRIMARY KEY,
tipologia TEXT,
nome TEXT
)
La tabella
MovimentiConti è così composta (in realtà è più popolata, ma la ho stilizzata giusto per una miglior comprensione del problema):
CREATE TABLE MovimentiConti
(
id INTEGER PRIMARY KEY,
conti_id INTEGER REFERENCES Conti (id),
clifor TEXT,
[...altri campi eliminati perché non necessari alla comprensione del problema...]
)
Evidenzio il fatto che la tabella MovimentiConti praticamente ha un foreign key alla tabella Conti.In Gambas tutto funziona a meraviglia, cioè le tabelle vengono create, i dati vengono aggiunti, ecc..., eccetto quando si inserire il valore di "conti_id" !
Ecco il codice Gambas:
...
AproDataBase() 'Apre la connessione al DataBase
ConnessioneDB.Begin
hres = ConnessioneDB.Create("MovimentiConti") 'Collega il Result hres alla tavola MovimentiConti in modalità CREA record
hres!conti_id = conti_id
hres!clifor = clifor
...
hres.Update
ConnessioneDB.Commit
ConnessioneDB.Close
END
Per completezza:AproDataBase()
With ConnessioneDB
.Type = "sqlite3" ' indicazione del tipo di database da utilizzare
.Host = FMain.PathFile
.Name = "DBDati"
.Open
End With
Bene, quando passo conti_id mi ritrovo nel database il valore NULL
Premetto che ho provato a passarlo sia come intero, che come stringa. Ma in entrambi i tentativi mi ritrovo con il solito valore NULL nel database. In teoria dovrebbe essere passato per intero visto e considerato che la foreign è un intero.
I casi sono due:
1) ho Gambas non riesce a gestire i foreign in sqlite3
2) non ho ben capito come funzia il foreign
In caso della seconda, ecco il mio ragionamento:
- La tabella conti:
id : è automatico, per cui freghiamocene
tipologia: esempio un conto bancario
nome: il nome che diamo al conto
- La tabella MovimentiConti:
id : è automatico, per cui freghiamocene
conti_id: inserisco (appunto con hres!conti_id = conti_id) a quale conto si riferisce questo movimento
clifor: testo di vario genere.. freghiamocene Grazie per la eventuale risposta.