Travaso di dati da un dataset all'altro in FireDAC

di il
10 risposte

Travaso di dati da un dataset all'altro in FireDAC

Se io volessi trasferire i datai da un dataset dell'oggetto TFDMemTable in un database statico avente la stessa tabella e gli stessi campi della tabella di TFDMemTable, avrei bisogno come componente di uno Schema Adapter per riversare i dati nel database?

Posso riversare i dati di una TFDMemTable in un database senza ricorrere alle queries?

10 Risposte

  • Re: Travaso di dati da un dataset all'altro in FireDAC

    01/10/2024 - GrandfatherCoder ha scritto:


    Posso riversare i dati di una TFDMemTable in un database senza ricorrere alle queries?

    Puoi provare con il componente TDataSetProvider (vedi documentazione).

    Normalmente si utilizza per fare quanto dici, ma con il componente TClientDataSet, che ha anche un “delta”.
    Sarebbe uno scenario da esplorare.

  • Re: Travaso di dati da un dataset all'altro in FireDAC

    Grazie ancora Alka.

    Ho scoperto questo prezioso componente.

    Spero di non pentirmi della scelta di sostituire l'array di records con un TFDMem per la gestione della lista del carrello.

    Anche perchè mi pare più pratico muovermi in un dataset.

    Eppoi a differenza dello sviluppatore dell'applicazione demo,noi siamo italiani,quindi con forte senso pratico.

    Ma l'applicazione demo non era fatta per i dati persistenti.

  • Re: Travaso di dati da un dataset all'altro in FireDAC

    Un amico che lavora nella sicurezza informatica mi ha detto che se FireDAC sembra darmi noie e perchè a differenza delle librerie che ho usato in passato,FireDAC avrà sicuramente molte meno falle di sicurezza.

  • Re: Travaso di dati da un dataset all'altro in FireDAC

    03/10/2024 - GrandfatherCoder ha scritto:


    Spero di non pentirmi della scelta di sostituire l'array di records con un TFDMem per la gestione della lista del carrello.

    Dipende dal contesto. Tutto ha un senso nel suo ambito, ma dipende da cosa si deve fare.

    Qui non si capisce mai bene a cosa si sta facendo riferimento, qual è lo scenario, da dove si arriva, dove si vuole andare, che applicazione si sta sviluppando, se è un progetto o un demo, se ci sono problemi, oppure se ci sono degli errori, quali sono, ecc.

    Sono tutte considerazioni sospese nell'aere che non hanno senso, se non si entra a parlare di uno scenario specifico di utilizzo.

    03/10/2024 - GrandfatherCoder ha scritto:


    Anche perchè mi pare più pratico muovermi in un dataset.

    Il termine “pratico” non ha valenza dal punto di vista tecnico. Se si usa questo termine con qualcuno, questo chiederà per forza “in che senso”?

    La praticità varia a seconda del tipo di utilizzo e della persona. Mi verrebbe da dire che un array è più “pratico”: per accedere al suo contenuto, basta usare un indice posizionale e non deve essere “scrollato” in avanti e indietro. Giusto per fare un esempio.

    03/10/2024 - GrandfatherCoder ha scritto:


    Eppoi a differenza dello sviluppatore dell'applicazione demo,noi siamo italiani,quindi con forte senso pratico.

    Mmm… boh…

    03/10/2024 - GrandfatherCoder ha scritto:


    FireDAC avrà sicuramente molte meno falle di sicurezza

    Non è dato saperlo, anche se sicuramente è una libreria più “di nicchia”.

    In realtà, la sicurezza di FireDAC è rafforzata da alcune opzioni di security che è possibile utilizzare nella libreria (c'è un inserto nella documentazione che ne parla).

  • Re: Travaso di dati da un dataset all'altro in FireDAC

    03/10/2024 - Alka ha scritto:


    Qui non si capisce mai bene a cosa si sta facendo riferimento, qual è lo scenario, da dove si arriva, dove si vuole andare, che applicazione si sta sviluppando, se è un progetto o un demo, se ci sono problemi, oppure se ci sono degli errori, quali sono, ecc.

    Può essere una demo,ma anche no.

    Pubblicamente non parlo dei miei progetti.

    Purtroppo ognuno ha una sua visione sullo sviluppo software,razionalmente dettata da situazioni,conoscenze ed esperienze.

    Meno razionalmente dai punti di vista personali.

    Perchè per il carrello ho scelto un oggetto TFDMemTable e non un array di records?

    TFDMemTable è un bel coltellino svizzero con parecchi metodi e proprietà utili e che mi tornano utili al momento opportuno.

  • Re: Travaso di dati da un dataset all'altro in FireDAC

    03/10/2024 - Alka ha scritto:


    Non è dato saperlo, anche se sicuramente è una libreria più “di nicchia”.

    Però grazie a Delphi e C++ Builder mi sembra usata anche in importanti applicazioni anche applicazioni finanziarie.

  • Re: Travaso di dati da un dataset all'altro in FireDAC

    04/10/2024 - GrandfatherCoder ha scritto:


    Può essere una demo,ma anche no.

    Pubblicamente non parlo dei miei progetti.

    Non c'è bisogno di citare dati specifici su clienti e/o progetti che siano identificabili: basta stare sul generico.
    Stiamo parlando di una applicazione Web con un carrello: senza fare riferimento a persone, cose o aziende, non mi pare che si tratti di un brevetto internazionale. :)

    04/10/2024 - GrandfatherCoder ha scritto:


    Purtroppo ognuno ha una sua visione sullo sviluppo software,razionalmente dettata da situazioni,conoscenze ed esperienze.

    Meno razionalmente dai punti di vista personali.

    Certo, però quando se ne discute online, generalmente si cerca di motivare facendo riferimento a qualcosa di specifico: indicare delle opinioni giustificandole col fatto che tutti hanno diritto ad averle, non fa capire perché si hanno certe opinioni e qual è il criterio o il ragionamento dietro. Se poi si tratta di scegliere delle soluzioni, a maggior ragione.

    04/10/2024 - GrandfatherCoder ha scritto:


    Perchè per il carrello ho scelto un oggetto TFDMemTable e non un array di records?

    TFDMemTable è un bel coltellino svizzero con parecchi metodi e proprietà utili e che mi tornano utili al momento opportuno.

    Questo è un esempio perfetto per quello che dicevo. “Un bel coltellino svizzero con metodi e proprietà utili”… ma perché, un array non ce li ha?

    La MemTable è un DataSet: si tratta di una tabella simil-DB che sta in memoria e che contiene record e colonne, assegnati a un tipo, con metodi e proprietà per spostarsi in avanti, indietro, andare all'inizio, alla fine, inserire, modificare, ecc.

    Se dovessi fare queste operazioni, magari con il coinvolgimento di una interfaccia utente, di certo il DataSet ti consente di farlo con pochi clic e senza scrivere troppo codice.

    Se dovessi memorizzare dati generici relativi a un carrello e manipolarli tramite codice, MAI sceglierei un DataSet, per tanti buoni motivi:

    1. per accedere a un elemento specifico devo “navigare” il DataSet e non posso accedere direttamente tramite un indice (di solito);
    2. la gestione del DataSet in sé come principio di funzionamento ha un suo overhead che rallenta l'esecuzione, se non serve;
    3. i campi sono indirizzati tramite il relativo nome, come stringhe, quindi non si può beneficiare del completamento del codice e un eventuale refactoring potrebbe esporre a errori rilevabili solo a runtime;
    4. occupano più spazio in memoria, oltre a essere più lenti come da punto 2);
    5. rappresentano bene solo elenchi “flat” di record e non possono rappresentare strutture dati più complesse (es. alberi, dizionari, ecc.).

    Però questa è una disamina con cui si sceglie se usare o meno un DataSet (quale è il MemTable), valutando vantaggi e svantaggi.

    Dire “massì, uso il DataSet perché ha dei metodi utili”, non dice sostanzialmente nulla, o suggerisce che è la struttura dati da usare sempre per via di questa caratteristica da “coltellino svizzero”, quando ogni cosa in Delphi (e non solo) è un coltellino svizzero, però dipende da qual è la scatola da aprire o da tagliare. :)

  • Re: Travaso di dati da un dataset all'altro in FireDAC

    03/10/2024 - GrandfatherCoder ha scritto:


    Ma l'applicazione demo non era fatta per i dati persistenti.

    Quindi la d emo crea a runtime tutte le tabelle? Articoli, clienti, metodi di pagamento, corrieri, costi di spedizione ecc… e le riempie pure? pesantuccio per stare in memoria e/o su un array per dati online.. comunque, se non vuoi mostrare la logica delle tabelle, il contenuto e nomi dei campi puoi farlo utilizzando un db serio. Se mi collego al sito e-commerce lapatutto non vedo ne che db usa ne nomi tabelle, ne nomi campi.. posso vedere il contenuto della suppongo tabella articoli (se non si cgiama prodotti oppure ecomprodvend) andandoci dal sito alla voce menu>>articoli.

    In tutto questo una demo avrebbe come articoli bicicletta graziella, tulipani in vaso, rossetto donna ciao ciao… tutti dati fittizi. Occhio a non farteli copiare!

    Anche quando aggiungi al carrello, non sai se la tabella correlata è “websitecarrello” o “shopcarrellotempoaneo” o “pippobaudo”.

    Quanto all' esperto in sicurezza, perde tutti i punti + bonus con la frase “se FireDAC sembra darmi noie e perchè avrà sicuramente molte meno falle di sicurezza”.

    Io penso che se qualcosa mi da noie è perché non lo conosco bene IO non chi vuole bucare firedac o perché firedac è blindato.

    Ma può darsi che mi sbaglio.

    Vuoi travasare dati da database a database? Usa xml, csv, json…

  • Re: Travaso di dati da un dataset all'altro in FireDAC

    05/10/2024 - sihsandrea ha scritto:


    In tutto questo una demo avrebbe come articoli bicicletta graziella, tulipani in vaso, rossetto donna ciao ciao… tutti dati fittizi. Occhio a non farteli copiare!

    Magari.

    Si tratta di articoli di sexy shop.

    E chi li ordina sono anche insospettabili brave ragazze.

  • Re: Travaso di dati da un dataset all'altro in FireDAC

    Fossero pure ricambi auto, di cosa hai paura? che possono rubarti la descrizione “Pastiglie freno brembo”? 

    Avere un e-commerce significa esporre in vetrina on line la merce… e pure i prezzi di listino! non capisco i timori per una demo.

    chiudo…

Devi accedere o registrarti per scrivere nel forum
10 risposte