Buonasera a tutto il team!
Dopo avere molto apprezzato le funzionalità di gambas con i DB sqlite mi sto scontrando con un problemino alquanto serio in merito al DB mysql. Ho un server in localhost, e pertanto non presenta alcun tipo di ritardo nella consultazione; l'ho testato con un'applicazione in access ed è una scheggia. Il problema della lentezza mi si presenta ad esempio al caricamento dei dati in una textarea, per cui servono almeno 3 secondi per caricare 2000 items, quando con access/VBA è istantaneo. Senza dubbio sto sbagliando qualcosa e mi viene il dubbio che la cosa sia da imputare ai componenti selezionati per l'app. Il codice che popola la textarea è il seguente:
Public Sub Button3_Click()
SQL = "select ricetta,id_ric from ric_nomi order by ricetta"
rs = avvio.conn.Exec(SQL)
For Each rs
TextArea1.Text = TextArea1.Text & rs!ricetta & Chr(13)
'ComboBox1.add rs["ricetta"]
rs.MoveNext
Next
End
e come si può notare ho disattivato la linea che popolava la combo in quanto presenta un incomprensibile errore, che ho cercato di risolvere modificando la sintassi di lettura del recordset. Vi sarei grato se poteste darmi qualche dritta in merito per entrambe le questioni: quella della lentezza e poi quella dell'errore!
Grazie!
Comunque il combobox si popola così nome-combobox.Add(item) nel tuo caso dovrebbe essere:
ComboBox1.Add(rs["ricetta"])
' oppure
ComboBox1.Add(rs!ricetta)
La lentezza è ingiustificata a fronte di così pochi record, evidentemente sbagli qualcosa.
Vedo che hai inserito parecchi componenti, ma se fossero in conflitto Gambas lo direbbe.
Se usi MySQL gb.db.odbc è inutile, potresti provare a usare gb.gui.qt al posto di gb.gtk3 a volte funziona meglio.
Se mi dai qualche indicazione posso fare un esempio pratico...
Buongiorno carissimo e grazie per il tuo prezioso supporto.
La versione di gambas3 che ho installato è quella presente nei repository di Mint 21, ed i pacchetti installati sono quelli della foto.
Chiarisco che sono alcuni anni che uso gambas con il DB sqlite e le app che ho creato sono sempre state molto efficienti.
Dovendo cimentarmi in una app che usa mysql su un server asiatico, mi preoccupavo prima di testarne la reattività con un mysql su localhost. Ed è qui che è sorto il problema della lentezza.
Non mi sono preoccupato di scaricare la versione che dici tu in quanto nel passato ogni installazione da repo ha sempre funzionato bene, ma se dici che si potrebbe presentare qualche problema, allora soprassiedo, disinstallo e faccio come dici.
Proverò poi a testare il prg che mi proponi e ti saprò dire.
Grazie molte per il tuo aiuto e buon lavoro!
Io non ti stavo suggerendo di compilare, ma solo di scaricare la cartella che contiene, fra le altre cose es. il codice sorgente scritto dallo stesso Minisini utile per imparare direttamente dal suo inventore, anche gli esempi.
Poi si direi che visto che usi Mint dovresti eliminare la versione 3.16 che hai installata e da PPA installare l'ultima stabile.
Una volta che hai disinstallato, i comandi sono:
$ sudo add-apt-repository ppa:gambas-team/gambas3
Quindi aggiorna i sorgenti e installa Gambas:
$ sudo apt-get update
$ sudo apt-get install gambas3
Mi scuso se ti ho dato l'impressione di pensare che non conosci Gambas e i database.
Io nel campo sono un semplice amatore e per giunta scarso ;D
Mi diverto a cercare di capire, ma con scarsi risultati, come si può creare un buon database con le poche conoscenze che ho e mi piace condividere.
Nella cartella degli esempi i database sono tre.
Non mi devi ringraziare io credo che lo scambio della conoscenza, anche se poca, può aiutare chiunque, pure un guru...
Parlando sempre dell'esempio che ti ho indicato, dovresti soffermarti a capire il codice della finestra FRequest e come fa a popolare la griglia.
Questo è il codice chiave:
Public Sub tbvData_Data(Row As Integer, Column As Integer)
$rData.MoveTo(Row)
tbvData.Data.Text = Str($rData[tbvData.Columns[Column].Text])
tbvData.Data.Background = Color.RGB((Row Mod 31) * 8, (Row Mod 17) * 15, (Row Mod 13) * 21)
tbvData.Data.Foreground = Color.White
End
Sono a disposizione per ulteriori chiarimenti.
A proposito: un grazie anche per il video che hai postato!
Veramente performante direi, e sta cosa rimane inspiegabile.
Direi che invece si spiega con il fatto che occorre avere tutto installato correttamente.
Ho avuto un po di tempo da dedicare a questo post, quindi ho creato una virtuale con Mint21 per vedere se c'erano problemi con il progetto di esempio Database.
In effetti all'avvio del progetto Gambas ha mostrato una finestra che recitava:
Imposta la variabile d'ambiente $EDITOR con il tuo editor di testo grafico preferito. Alcuni comandi di controllo della versione ne hanno bisogno.
Non avendo mai incontrato questo messaggio ho cercato di ignorarlo, ma provando con SQLite3 ho avuto dei problemi.
Allora mi sono informato andando a vedere nel codice da dove proveniva il messaggio e ho scoperto che se non hai certi editor di testo installati (kwrite, mousepad, leafpad, puma, gedit e credo anche emacs) allora devi indicare a Gambas quale editor di testo usi.
Non lo sapevo che Mint usa xed e non gedit, allora ho impostato la variabile di ambiente $EDITOR dando da terminale il seguente comando:
sudo nano /etc/environment
e aggiungendo questa riga al file
Ho salvato il file, quindi ho riavviato.
Ho riprovato e il progetto ha funzionato bene.
A questo punto ho installato il server di mysql seguendo la guida di Gambas-Buch scritta dal Prof. Hans-Joachim Lehmann con cui ho l'onore di collaborare, questa la pagina dedicata:
https://gambas-buch.de/doku.php?id=k22:k22.15:start
Vedi immagini mint-1 e 2
E malgrado sia su una virtuale la visualizzazione dei 10.000 record nella griglia è immediata come su Ubuntu
Vedi il video zippato, postato a questo link:
https://paste.c-net.org/MinimizeSlash
Lo so non posso fare il regista :P
:ciao: