Gambas-it

Gambas3 => Programmazione => Topic aperto da: doublemm - 21 Novembre 2013, 14:12:08

Titolo: Inserimento dati in un database sqlite
Inserito da: doublemm - 21 Novembre 2013, 14:12:08
Buongiorno a tutti, volevo chiedere se qualcuno sa se al posto di usare:
Codice: [Seleziona]
risultato!NOME = "pippo"
risultato!COGNOME = "rossi"
' ecc ecc

è possibile usare delle stringhe contenute in un array al posto di NOME e COGNOME tipo risultato!mioArray (che ovviamente messo così non funziona)

Grazie
Titolo: Re: Inserimento dati in un database sqlite
Inserito da: Aldo - 21 Novembre 2013, 14:52:31
Se non ho capito male il problema dovresti poter utilizzare la codifica:
risultato

ovviamente mettendo i valori corretti in

Però forse non ho capito nulla...
...e allora scusa se ti faccio perdere tempo!
Titolo: Re: Inserimento dati in un database sqlite
Inserito da: Golia - 21 Novembre 2013, 17:01:42
Ciao
Se il result "risultato" è composto da una query in questo ordine: "SELECT NOME, COGNOME FROM rubrica"
risultato[0] è Nome
risultato[1] è Cognome

puoi anche farlo girare in un ciclo for, usando risultato.count
Titolo: Re: Inserimento dati in un database sqlite
Inserito da: doublemm - 21 Novembre 2013, 18:45:27
forse non mi sono spiegato bene il problema è che i nomi dei campi della tabella che devo creare sono all'interno di una array string. Ora io volevo evitare di scrivere tutti i nomi dei campi a mano ovvero:
 MioArray = ["IntNome","IntCognome","IntIndirizzo","IntTelefono"]

quello che volevo evitare era questo:
Codice: [Seleziona]
risultato=connessione.create["MioDatabase"]
risultato!IntNome=nome
risultato!IntCognome=cognome
ecc
ecc
risultato.update
connessione.commit

C'è un modo di recuperare i nomi dei campi dall'array cosi da poter fare un ciclo dove all'interno poter trovare una cosa del tipo risultato!MioArray[n]= ........ ?
Titolo: Re: Inserimento dati in un database sqlite
Inserito da: milio - 21 Novembre 2013, 19:49:49
Ma tu vuoi creare una tabella (e qui i nomi dei campi sono in un array) o interrogare una tabella ed estrapolare i nomi dei campi in un array?

punto uno:

Dim Tab as Table
Dim NomiCampi as New String[]
Dim txtCampo as string

  NomiCampi =  ["IntNome","IntCognome","IntIndirizzo","IntTelefono"]

  Tab = TuaConnection.Tables.Add("MiaTabella")

  For Each txtCampo In NomiCampi
    Tab.Fields.Add(txtCampo, db.string)
  Next



punto due

Dim Campo As ResultField
Dim Res As Result
Dim NomiCampi As New String[]

  Res = TuaConnection.Exec(TuaQuery)
 
  For Each Campo In Res.Fields
    NomiCampi.Add(Campo.Name)
  Next

Titolo: Re: Inserimento dati in un database sqlite
Inserito da: milio - 21 Novembre 2013, 20:00:37
Buongiorno a tutti, volevo chiedere se qualcuno sa se al posto di usare:
Codice: [Seleziona]
risultato!NOME = "pippo"
risultato!COGNOME = "rossi"
' ecc ecc

è possibile usare delle stringhe contenute in un array al posto di NOME e COGNOME tipo risultato!mioArray (che ovviamente messo così non funziona)

Grazie

e da quello che ho letto nel primo post sembrerebbe che quello che cerchi sia questo:

Dim NomiCampi as New String[]
Dim Valori as New String[]
Dim txtCampo as string
Dim Nx as Integer
Res As Result

  NomiCampi =  ["IntNome","IntCognome","IntIndirizzo","IntTelefono"]
  Valori = ["Ciccio","Barzillo","Via Vai","016654333"]

  For Nx = 0 To NomiCampi.max
    Res[NomiCampi[Nx]] = Valori[Nx]
  Next
Titolo: Re: Inserimento dati in un database sqlite
Inserito da: doublemm - 21 Novembre 2013, 21:04:08
grazie milio cercavo proprio quello che hai spiegato nel secondo esempio. La creazione della tabella l'avevo fatta in un altro modo.

Io usavo sempre Res!nomecampo ignoravo l'utilizzo di Res[NomiCampi[Nx]] = Valori[Nx]