Gambas-it

Archivi (sola lettura) => Programmazione (Gambas 2) => Topic aperto da: andy60 - 05 Febbraio 2008, 06:24:32

Titolo: Tabelle in sqlite
Inserito da: andy60 - 05 Febbraio 2008, 06:24:32
Per puntare ad una tabella specifica di un database sqlite sto utilizzando questo metodo ma non lo reputo molto 'elegante':

Codice: [Seleziona]
DIM hTable AS Table
FOR EACH hTable IN MODMain.$Con.Tables
 IF hTable.Name = "tbALIMENTI" THEN
       
 ....istruzioni ....

 END IF
NEXT


esiste un metodo che non utilizzi il FOR EACH?
Titolo: Re: Tabelle in sqlite
Inserito da: leo72 - 05 Febbraio 2008, 10:11:55
Non ho capito una cosa.... ma tu non sai a priori i nomi delle tabelle del DB?
E perché non li sai? Perché il DB viene aggiornato/modificato esternamente alla tua applicazione?
Titolo: Re: Tabelle in sqlite
Inserito da: andy60 - 05 Febbraio 2008, 15:20:42
Cerco metodi 'generali' per estendere il concetto di risabilità del codice, la routine deve andare bene x un db con due tabelle come per un db con 100 tabelle. Mia intenzione e' fare una procedura dove passo il nome della tabella e l'array dei dati e viene aggiunto il record, senza nemmeno mettere manualmente ne' nomi di campo ne' determinare a mano il nome di campo. Massima comodità..

Esempio di output con una subroutine che sto approntando...crea automaticamente questa sql partendo dal nome della tabella e da un controllo columnview dove risiedono i dati:

"INSERT into tbALIMENTI (idalimento, produttore, alimento, quantita, um, punti, energia, proteine, grassi, carboidrati, gr_poly, gr_mono, gr_sat, gr_trs, gr_col, carb_sugar, carb_starch, carb_fibre, indice_glicemico, glic_load, vit_A, vit_C, vit_D, vit_E, vit_K, vit_B6, vit_B12, vit_niacina, vit_B1, vit_riboflavina, vit_folate, vit_B5, vit_biotin, min_sodio, min_potassio, min_calcio, min_ferro, min_zinco, min_fosforo, min_copper, min_magnesio, min_manganese, min_selenio, min_cromo, min_molybend, min_chloride, min_iodine, acqua, alcool, caffeina, amino_lglutamm, amino_larginina, amino_leucina, amino_isoleucina, amino_valina) VALUES (valore n.1, 'valore n.2', 'valore n.3', valore n.4, 'valore n.5', valore n.6, valore n.7, valore n.8, valore n.9, valore n.10, valore n.11, valore n.12, valore n.13, valore n.14, valore n.15, valore n.16, valore n.17, valore n.18, valore n.19, valore n.20, valore n.21, valore n.22, valore n.23, valore n.24, valore n.25, valore n.26, valore n.27, valore n.28, valore n.29, valore n.30, valore n.31, valore n.32, valore n.33, valore n.34, valore n.35, valore n.36, valore n.37, valore n.38, valore n.39, valore n.40, valore n.41, valore n.42, valore n.43, valore n.44, valore n.45, valore n.46, valore n.47, valore n.48, valore n.49, valore n.50, valore n.51, valore n.52, valore n.53, valore n.54, valore n.55)"

oppure

"UPDATE tbALIMENTI idalimento=valore n.1, produttore='valore n.2', alimento='valore n.3', quantita=valore n.4, um='valore n.5', punti=valore n.6, energia=valore n.7, proteine=valore n.8, grassi=valore n.9, carboidrati=valore n.10, gr_poly=valore n.11, gr_mono=valore n.12, gr_sat=valore n.13, gr_trs=valore n.14, gr_col=valore n.15, carb_sugar=valore n.16, carb_starch=valore n.17, carb_fibre=valore n.18, indice_glicemico=valore n.19, glic_load=valore n.20, vit_A=valore n.21, vit_C=valore n.22, vit_D=valore n.23, vit_E=valore n.24, vit_K=valore n.25, vit_B6=valore n.26, vit_B12=valore n.27, vit_niacina=valore n.28, vit_B1=valore n.29, vit_riboflavina=valore n.30, vit_folate=valore n.31, vit_B5=valore n.32, vit_biotin=valore n.33, min_sodio=valore n.34, min_potassio=valore n.35, min_calcio=valore n.36, min_ferro=valore n.37, min_zinco=valore n.38, min_fosforo=valore n.39, min_copper=valore n.40, min_magnesio=valore n.41, min_manganese=valore n.42, min_selenio=valore n.43, min_cromo=valore n.44, min_molybend=valore n.45, min_chloride=valore n.46, min_iodine=valore n.47, acqua=valore n.48, alcool=valore n.49, caffeina=valore n.50, amino_lglutamm=valore n.51, amino_larginina=valore n.52, amino_leucina=valore n.53, amino_isoleucina=valore n.54, amino_valina=valore n.55 WHERE id=xx"



ciao