Raga siete gentilissimi come al solito! :-D Quindi il simbolo $ in questo caso non ha nessun significato, giusto?
Ora, perdonatemi ma ho altre domandine, una fuori tema : quando creo una parte di codice ho notato che posso scrivere : Public Sub e private sub, se non erro, cosa vuol dire?
Tornando invece ai database, allora partiamo da zero. allora nel mio form ho inserito un Datasource e poi un Dataview, il primo deve servirmi per aprire il database, giusto? Mentre il secondo visualizza i dati.
Ora tornando quindi al codice io scrivo:
PUBLIC SUB Form_Open()
DIM Database AS String
DIM Percorso AS String
DIM Connessione AS NEW Connection
Database = "Productlist" è il nome del mio database
Percorso = User.Home è il posto in cui si trova
WITH Connessione Questa parte l'ho presa da un esempio ma non mi è chiara
.Type = "sqlite3" tipo di database
.Host = Percorso
END WITH
Qui mi blocco, ora io il database non lo ho, lo vorrei creare sempre con gambas e poi poterlo aggiornare ogni volta che mi serve.
Ho pescato questo codice sempre dal pdf:
sql = "CREATE TABLE 'biblio' ( 'id' INTEGER PRIMARY KEY, 'nome' VARCHAR(255)" DEFAULT NULL, 'cognome' VARCHAR(255) DEFAULT NULL, 'indirizzo' VARCHAR(255) DEFAULT NULL); "" hTable = $hConn.EXEC(sql)
e non ho capito bene, dice sql? ma io non uso sqlite3? perdonate ma proprio sono a pane e acqua!
il 255 indica il numero di caratteri massimi, giusto? che sarebbe 2 all'ottava, giusto? o ricordo male?
Ok, per ora mi sembra d'aver finito, ma ci risentiremo presto!
ciao e grazie!
anche in questo caso sql è una variabile di tipo stringa, non hai visto che è stata dichiarata con :
DIM sql AS string
nel contesto in cui l' hai presa sql contiene la query per la creazione del db, è stata utilizzata questa variabile solo per rendere + leggibile il codice (o forse no?)
il comando che ti crea il db è questo:
tavola=connessione.exec(sql)
che si puo anche scrivere cosi senza usare la variabile:
tavola=connessione.exec( "CREATE TABLE 'biblio' ( 'id' INTEGER PRIMARY KEY, 'nome' VARCHAR(255)" DEFAULT NULL, 'cognome' VARCHAR(255) DEFAULT NULL, 'indirizzo' VARCHAR(255) DEFAULT NULL); ")
dove tavola è una variabile di tipo "result" che avrai dichiarato all' inizio della funzione con
DIM tavola as result
Il metodo Exec() significa Execute, cioè Esecuzione: impartisce al DB di eseguire la query SQL.
Ad esempio:
Risultato = Connessione.Exec("SELECT * FROM tabella WHERE tipo = &1", "tipo_a")
Si impartisce al DB di selezionare dalla tabella "tabella" tutti i record il cui campo "tipo" sia uguale a "tipo_a".
E' lo stesso di Connessione.Find("tabella", "tipo=&1","tipo_a").
Spesso però si utilizza una query pura invece che dei metodi di Gambas perché magari dobbiamo eseguire delle operazioni un po' complesse.