Autore Topic: sqlite3 prelevare dati  (Letto 2035 volte)

Offline alejandro

  • Gamberetto
  • *
  • Post: 21
    • Mostra profilo
sqlite3 prelevare dati
« il: 13 Novembre 2021, 12:28:25 »
salve ragazzi,ho un problema al prelevare dati dal sqlite3.
ho creato un database con campi sul giorno + mese + anno + primo dato + secondo dato + terzo dato + quarto dato.
con RespuestaDB.Count(Result) posso sapere quante volte un valore si trova nel primo campo,ma non riesco a prelevare l'ultima data(campi giorno+mese+anno) che questo valore si presenta.
ho girato e rigirato per il web e non ne vengo a capo.
la querry usata è questa
Codice: [Seleziona]
sql = "SELECT * FROM superenalotto WHERE I LIKE '%" & CStr(1) & "%'"
RespuestaDB = ConexionDB.Exec(sql)
txaTablero.Text &= CStr(1) & "       " & RespuestaDB.Count & "       " & RespuestaDB[1] & RespuestaDB[2] & RespuestaDB[3] & "\n"
ConexionDB.Close
txaTablero.Text = Trim(txaTablero.Text)
il risultato è questo
Codice: [Seleziona]
1       761       020709
il valore 1 nel campo I è presente 761 volte.Ma la data che viene fuori è la prima volta in qui è presente,non l'ultima.
qual'è la querry giusta? ce un doc sulle querry del sqlite3?
grazie in anticipo.

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Re:sqlite3 prelevare dati
« Risposta #1 il: 13 Novembre 2021, 14:03:25 »
Non vedendo la tabella, provo a indovinare  :)
Forse dovresti muoverti sull'ultimo Result con MoveLast

 :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Re:sqlite3 prelevare dati
« Risposta #2 il: 13 Novembre 2021, 16:41:37 »
Forse sono stato un po troppo criptico...
Fai questa prova:
Codice: [Seleziona]
  If RespuestaDB.Available Then 
    RespuestaDB.MoveLast
    Print RespuestaDB.Count;; RespuestaDB[1];; RespuestaDB[2];; RespuestaDB[3]
  Endif

Però se posso darti un consiglio non usare i result come fossero dei vettori, usa un codice più consono ad esempio Result["nome_del_campo"] oppure Result!nome_del_campo

 :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re:sqlite3 prelevare dati
« Risposta #3 il: 13 Novembre 2021, 18:07:58 »
Secondo me dovresti mettere un ordinamento direttamente nella query.

Es:
Codice: [Seleziona]
sql = "SELECT * FROM superenalotto WHERE I LIKE '%" & CStr(1) & "%' ORDER BY Campo_Data_che_non_so_quale_perche_usi_select_asterisco DESC;"

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Re:sqlite3 prelevare dati
« Risposta #4 il: 14 Novembre 2021, 15:58:54 »
Secondo me dovresti mettere un ordinamento direttamente nella query.

Es:
Codice: [Seleziona]
sql = "SELECT * FROM superenalotto WHERE I LIKE '%" & CStr(1) & "%' ORDER BY Campo_Data_che_non_so_quale_perche_usi_select_asterisco DESC;"

Ciao Milio,

È chiaro che prima occorre avere una tabella ordinata, la mia speranza era che i dati fossero introdotti già in ordine, vale a dire giorno per giorno.
Altrimenti visto che, se ho capito bene, le date sono distribuite su tre colonne (giorno, mese, anno) e sono delle stringhe, la faccenda si complica non poco.  :-\

Se invece i dati sono numeri interi allora la cosa è semplice basta dare un ORDER BY colonna_giorno, colonna_mese, colonna_anno.

Dico bene o dico sciocco?  :donkey:

 :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Re:sqlite3 prelevare dati
« Risposta #5 il: 14 Novembre 2021, 16:44:48 »
... ce un doc sulle querry del sqlite3?


SQL è una specie di lingua franca compresa (+ o -) da tutti i database, in effetti ci sono delle variazioni secondo il database ma intanto dovresti conoscerla vedi qui un tutorial:
https://www.w3schools.com/sql/default.asp

Poi Gambas ha a sua volta un sottolinguaggio universale valido per SQLite, PostgreSQL, MySQL, ODBC:
http://gambaswiki.org/wiki/comp/gb.db

Si chiama DB di gb.db studiatelo ad esempio se la tua tabella ha i campi data con numeri interi potresti ottenere l'ordinamento della tabella così: 
Codice: [Seleziona]
RespuestaDB = ConexionDB.Find("superenalotto", "Order BY nome_campo_giorno, nome_campo_mese, nome_campo_anno")
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline alejandro

  • Gamberetto
  • *
  • Post: 21
    • Mostra profilo
Re:sqlite3 prelevare dati
« Risposta #6 il: 15 Novembre 2021, 21:28:56 »
grazie a tutti.
principalmente per la documentazione sul sito di sql.
ultima domanda..........che diferenza pasa fra gli operatori LIKE % e ' ?

Offline alejandro

  • Gamberetto
  • *
  • Post: 21
    • Mostra profilo
Re:sqlite3 prelevare dati
« Risposta #7 il: 22 Novembre 2021, 12:04:03 »
volevo dire fra '%' e '_'  :-[

comunque ho capito qual'è la diferenza.
 
La domanda sulla matrice è stata spostata in Programmazione con il titolo:
Ordinare una matrice bidimensionale

Occorre fare una domanda per Topic per facilitare la ricerca
« Ultima modifica: 22 Novembre 2021, 18:15:42 da Gianluigi »