Italian community of Lazarus and Free Pascal

Programmazione => Lazarus e il web => Topic aperto da: xinyiman - Aprile 17, 2012, 10:58:08 am

Titolo: Sondaggio ExtPascal
Inserito da: xinyiman - Aprile 17, 2012, 10:58:08 am
Ciao ragazzi, allora volevo sapere quanti di voi hanno provato il binomio ExtPascal e Lazarus.
Fatevi sotto!
Titolo: Re:Sondaggio ExtPascal
Inserito da: nomorelogic - Aprile 24, 2012, 03:32:46 pm
una domanda, visto che ci hai smanettato alla grande
sto pensando ad un progetto per il web; portale che dovrei realizzare dovrebbe essere fruibile, oltre che da pc, anche da smarthphone, tablet e simili.

posto che non tutti i browser "mobile" hanno la possibilità di usare javascript, c'è la possibilità di generare, con ExtPascal, html/javascript visualizzabile anche sui dispositivi mobili?

spero proprio di si
grazie in anticipo

Titolo: Re:Sondaggio ExtPascal
Inserito da: xinyiman - Aprile 24, 2012, 04:24:04 pm
Bhe non ho avuto modo di fare test su dispositivi "mobili", prossimamente lo farò! Ora quello che mi preme capire è come lavorare con le griglie. In questo esempio che segue riesco a caricare i dati dal db al caricamento della pagina, ma se poi aggiungo dei dati con delle query non riesco a caricare i dati nuovi. E in più non riesco a capire come stabilire quale riga è selezionata al momento attuale.

Chiunque riesca ad aiutarmi fa cosa gradita così poi creo un videotutorial al riguardo. Ho creato una classe apposita per interfacciare una query (zeos) con le griglia modificabile messa a disposizione da ExtPascal e il risultato è carino. Devo solo capire come fare con le due problematiche sopra menzionate.

Ecco l'esempio incriminato

www.lazaruspascal.it/esempi/Ext_DBGriglia.zip
Titolo: Re:Sondaggio ExtPascal
Inserito da: nomorelogic - Aprile 25, 2012, 12:59:20 pm
è che ora sto cercando di mettere su un ambiente lazarus/fpc ricompilando dai sorgenti e, come dire, ho qualche problemino... :D
però ho trovato un tool in via di sviluppo che è una figata e ho intenzione di scrivere qualcosa al riguardo (non appena funzionerà a dovere ovviamente)

detto questo non capisco una cosa, dici di aggiungere dati con delle query: intendi dire che esegui delle "INSERT INTO" ma non riesci poi a rileggere?
in questo caso credo che il tuo problema derivi dalla transazione, dovresti committarla e poi riprovare
Titolo: Re:Sondaggio ExtPascal
Inserito da: Stilgar - Aprile 25, 2012, 02:39:02 pm
In linea di massima la gestione della tansazione dipende dal motore sql che stai utilizzando.
Sempre in linea di principio, se inserisci una riga in una tabella, prima di committarla, dovresti vederla solo tu e non gli altri utenti collegati. Quando chiedi la commit, la "modifica" diventa persistente e visibile agli altri utenti.
Cosa diversa se fai l'autocommit, come alcuni DB permettono. Serve per non dover gestire le transazioni (ebbene sì, noi programmatori siamo pigri :D ).

Se inserisci una riga, dovresti conoscere i campi in chiave, quindi potresti impostare un filtro al dataset, in modo che punti alla nuova riga.
Per sapere quale riga è selezionata, i dataset mettono a disposizione alcune funzioni/proprietà. RowNum se non sbaglio (vado a memoria) è una di queste, poi con un MoveBy(Delta,Partenza) puoi riposizionarti alla stessa riga. E' una pratica sconsigliata, in ogni caso. Troppe cose da tenere sotto controllo. (Ad esempio se nel frattempo quella riga, causa .. filtro ad esempio ... non è più presente? Boom Errore)
Il fatto che non vedi i dati appena modificati è (immagino) dovuto al fatto che il Dataset esegue uno snapshot dei dati. Quindi il tuo cursore contiene i dati precedenti all'insert/update/delete che esegui. Non ci si rende conto con i componenti DataAware di questa cosa, visto che prima modifichi la copia in memoria, poi la invii al db. Se esegui fuori da questo schema le modifiche, nascono i comportamenti che apparentemente sono sclerotici ;)
Spero di non aver aumentato la confusione.
Titolo: Re:Sondaggio ExtPascal
Inserito da: xinyiman - Aprile 25, 2012, 10:19:37 pm
Il discorso secondo me è un altro. Avete provato ad eseguire l'esempio?!