Autore Topic: Uso di un database  (Letto 2717 volte)

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: Uso di un database
« Risposta #15 il: 20 Dicembre 2008, 06:46:56 »
[OT]
Dipende da che Basic:-;
Sui Basic Commodore il $ identificava le variabili di tipo stringa. A era un numero, A$ era una stringa.

Sul Gw-Basic mi pare fosse ancora così.
[/OT]
Visita il mio sito personale: http://www.leonardomiliani.com

Offline Lux

  • Maestro Gambero
  • ****
  • Post: 416
    • Mostra profilo
Re: Uso di un database
« Risposta #16 il: 20 Dicembre 2008, 11:45:59 »
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:
Codice: [Seleziona]
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


Codice: [Seleziona]
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:
Codice: [Seleziona]
 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!

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: Uso di un database
« Risposta #17 il: 20 Dicembre 2008, 14:50:50 »
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:
Codice: [Seleziona]

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

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: Uso di un database
« Risposta #18 il: 20 Dicembre 2008, 14:54:01 »
Citazione
il 255 indica il numero di caratteri massimi, giusto? che sarebbe 2 all'ottava



si 255 indica il numero massimo di caratteri che il campo può contenere , pui mettere qualsiasi valore dipende da cosa devi memorizzare

Offline Lux

  • Maestro Gambero
  • ****
  • Post: 416
    • Mostra profilo
Re: Uso di un database
« Risposta #19 il: 20 Dicembre 2008, 16:23:35 »
Ok, grazie mille. Un'altra cosa, il codice:
Codice: [Seleziona]
tavola=connessione.exec
è la connessione al database o la creazione? Nel senso tavola è il nome del database da creare?
se volessi creare un database diversamente da come l'hai creato tu, aggiungendo dei nomi diversi ma facendolo magari inserendoli in un textbox e non direttamente dal codice, perchè ora non so quanti campi mi occorrono come posso fare?
Ciao e grazie mille per l'aiuto!

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: Uso di un database
« Risposta #20 il: 20 Dicembre 2008, 23:19:44 »
Il metodo Exec() significa Execute, cioè Esecuzione: impartisce al DB di eseguire la query SQL.
Ad esempio:
Codice: [Seleziona]

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.
Visita il mio sito personale: http://www.leonardomiliani.com