sabato 11 luglio 2026

Free PlyxSQL© SQL Beta - 1.0.0.70

 Free PlyxSQL© SQL Beta - ETL Professional

POSTED BY GIULIANO PAGNINI, 11 LUG 2026

Free DOWNLOAD Clicca qui Info https://pgsoft.it/plyxhtml




Novità e fix della versione 1.0.0.70

Con la versione 1.0.0.70 arrivano diversi miglioramenti importanti sia sul fronte ETL sia su LocalSQL, con nuove funzioni per la creazione dei tracciati, l’importazione dati e la connessione a sorgenti REST. Il lavoro di questa sessione ha anche corretto diversi bug storici, migliorato le prestazioni di apertura dei progetti e reso più chiara l’interfaccia dei wizard.

ETL: import più potente e più chiaro

Nel dialog Nuova fase è stato aggiunto il pulsante “Genera campi da tabella”, che permette di collegare automaticamente i campi con lo stesso nome subito dopo la scelta di origine e destinazione, senza dover prima confermare la fase. Sempre nel flusso ETL è stata introdotta una nuova modalità di import con supporto a più strategie operative, tra cui inserimento, append, update, append/update e delete, con gestione delle chiavi multiple tramite un campo dedicato.

Un altro miglioramento importante riguarda l’evidenziazione dei campi con tipo diverso tra origine e destinazione: testo, numeri, date, booleani e binari vengono ora messi in risalto sia nel dialog di generazione campi sia nella modifica del singolo campo. Questo aiuta a individuare subito dove è opportuno usare una regola di tipo Espressione per la conversione.

Log e gestione fase

È stato aggiunto anche un nuovo evento di logging per l’import ETL, che mostra nella finestra di avanzamento un memo cronologico con inizio e fine importazione, inizio e fine di ogni fase, conteggio dei record e eventuali errori. In più, nel dialog Nuova fase è comparso il pulsante “Aggiungi fase”, utile per salvare rapidamente la fase corrente e aprirne subito una nuova con le stesse connessioni e modalità dell’ultima configurazione.

Durante l’implementazione sono stati corretti anche alcuni punti di compilazione e validazione, in particolare l’allineamento alla reale API FireDAC e il controllo obbligatorio di origine e destinazione, così da evitare la creazione accidentale di fasi vuote.

LocalSQL e tracciato

La sezione LocalSQL ha ricevuto un intervento molto ampio. Ora i parametri del tracciato vengono salvati in modo completo e affidabile: tipo record, encoding, salto righe iniziali e layout campi persistono correttamente sulla connessione. È stato introdotto anche il nuovo campo “Salta righe iniziali” nel wizard, utile per scartare le prime righe fisiche del file prima del parsing.

Inoltre, i campi con lunghezza nota fino a 255 caratteri vengono ora creati come VARCHAR(n) invece che come testo illimitato, migliorando l’introspezione FireDAC. Sono stati aggiunti i pulsanti per salvare e caricare il tracciato su file, così da esportare e riutilizzare facilmente l’intera configurazione tramite file dedicati.

Incolla tracciato e anteprima

Anche la funzione Incolla tracciato è stata resa più intelligente: ora riconosce correttamente nomi campo non necessariamente tutti maiuscoli, normalizzandoli in identificatori SQL puliti come CODICE_FISCALE invece di ricadere su nomi generici. L’estensione del file dati viene anche rilevata automaticamente, evitando che il wizard resti bloccato su un formato predefinito non corretto.

L’anteprima del tracciato è stata inoltre resa più leggibile grazie a un pannello più ampio e a una griglia meno schiacciata. Sono state anche migliorate le griglie editabili, rimuovendo il comportamento che bloccava l’editing diretto delle celle.

Fix sul tracciato

Uno dei bug più importanti corretto riguarda il caso in cui il file di configurazione venisse scambiato per un file dati. In precedenza il salvataggio del tracciato poteva finire nella stessa area usata per cercare i dati reali, generando anteprime illeggibili. Ora il formato dedicato .tracciato separa nettamente configurazione e dati, e una guardia aggiuntiva impedisce di aprire una configurazione come se fosse una sorgente dati.

Nuova connessione REST

Una novità rilevante è il nuovo tipo di connessione LocalSQL REST. Questo consente di collegare uno o più endpoint HTTP GET e mapparli come tabelle virtuali. La connessione supporta autenticazione configurabile tramite nessuna autenticazione, Bearer token, API Key su header personalizzato o Basic Auth.

È possibile anche specificare un JSON Path per individuare l’array dei record quando non è alla radice della risposta. Lo schema viene derivato in modo robusto dall’unione delle chiavi viste nei primi 200 record, così da gestire bene campi opzionali o distribuiti in modo sparso.

Prestazioni e apertura progetti

L’apertura dei progetti è stata resa più veloce grazie alla scansione lazy delle cartelle per le connessioni LocalSQL basate su file. Ora la scansione non avviene più subito all’apertura del progetto, ma solo quando l’utente espande il nodo Tabelle o quando viene richiesto esplicitamente da codice.

Per i casi in cui l’elenco tabelle serve subito, è stato introdotto un metodo dedicato per forzare la scansione della cache. È stata anche corretta una regressione legata al classico errore “no such table”, ripristinando il preload delle tabelle quando una connessione viene attivata.

Interfaccia e localizzazione

La finestra di progresso durante l’apertura progetto ora mostra due livelli di avanzamento: Connessione N di M e File N di M, così da rendere più chiaro il caricamento delle tabelle. La gestione dei messaggi di aggiornamento è stata anche limitata alla sola finestra di progresso, evitando effetti collaterali sul form principale.

Infine, sono state aggiunte numerose nuove chiavi di localizzazione per il testo introdotto in questa sessione, e il wizard è stato ripulito ulteriormente: quando si seleziona il tipo REST, cartella, estensione e pulsante Browse vengono nascosti del tutto perché non servono più.

Big data analisi

Super fast dataset map analisi 




Conclusione

La versione 1.0.0.70 porta quindi un insieme molto consistente di miglioramenti: più automazione nell’ETL, tracciati più affidabili, connessioni REST più flessibili, apertura progetti più veloce e una lunga serie di fix che migliorano solidità e usabilità generale. È un rilascio che punta sia sulla produttività quotidiana sia sulla robustezza del flusso di lavoro.


#SQL #database #MAPSENGINE #DataEngineering #plyxSQL #FireDAC

martedì 7 luglio 2026

Free PlyxSQL© SQL Beta - 1.0.0.66 ETL Professional

Free PlyxSQL© SQL Beta - ETL Professional

POSTED BY GIULIANO PAGNINI, 07 LUG 2026

Free DOWNLOAD Clicca qui Info https://pgsoft.it/plyxhtml

ETL con BackMove: velocità e controllo nel cuore di PlyxSQL

                


Conclusione tecnica

BackMove in PlyxSQL si presta bene a una visione moderna dell’ETL: veloce, configurabile e orientato al dato, non al codice rigido. La possibilità di definire regole per singolo campo, con REGEXP, LOOKUP e trasformazioni dedicate, rende il flusso più solido e più adatto a contesti enterprise dove qualità, tracciabilità e manutenzione contano quanto le prestazioni

Free PlyxSQL© SQL Beta - 1.0.0.66 Map Engine

 Free PlyxSQL© SQL Beta - Map Engine

POSTED BY GIULIANO PAGNINI, 07 LUG 2026

Free DOWNLOAD Clicca qui Info https://pgsoft.it/plyxhtml

CSV samples

















#SQL #database #MAPSENGINE #DataEngineering #plyxSQL #FireDAC

sabato 4 luglio 2026

Free PlyxSQL© SQL Beta - 1.0.0.64 new ETL engine

 Free PlyxSQL© SQL Beta - new ETL engine

POSTED BY GIULIANO PAGNINI, 04 LUG 2026

Free DOWNLOAD Clicca qui Info https://pgsoft.it/plyxhtml

PlyxSQL cresce ancora: arriva l'ETL a fasi con motore BatchMove integrato

Chiunque lavori ogni giorno con i database conosce quel momento: i dati sono nel posto sbagliato. Un CSV da caricare in produzione. Un database legacy da travasare in quello nuovo. Due ambienti da tenere allineati senza scrivere ogni volta lo stesso script usa-e-getta.

Fino a ieri, per farlo dovevi uscire dal tuo client SQL. Aprire un tool ETL esterno, spesso sovradimensionato per il compito. Oppure scrivere codice.

Con l'ultimo aggiornamento, plyxSQL smette di essere solo il posto dove scrivi query — diventa anche il posto dove sposti i dati.

Fasi, non script

Il nuovo modulo ETL di plyxSQL ragiona per fasi: ogni fase è una coppia tabella origine → tabella destinazione, con le sue regole di campo, il suo filtro, le sue impostazioni. Costruisci il flusso a vista, direttamente nell'albero delle connessioni che già usi per esplorare i tuoi database — non serve un ambiente separato, non serve reimparare uno strumento nuovo.

Origine e destinazione si scelgono da un menu a discesa con filtro istantaneo: scrivi tre lettere, plyxSQL ti mostra solo le tabelle (o i campi) che contengono quel testo, tra centinaia di righe di schema.

Le regole di campo: più di un copia-incolla

Ogni campo mappato può seguire una regola diversa:

  • Diretto — il valore passa così com'è
  • Costante — scrivi sempre lo stesso valore, qualunque sia l'origine
  • Espressione — trasforma il valore al volo: maiuscole, minuscole, sottostringhe, valori di default, e ora anche espressioni regolari (REGEXMATCH, REGEXEXTRACT, REGEXREPLACE) e conversione di formato per date e numeri (DATE(yyyy-mm-dd), NUMBER(,;.)) — pensate apposta per quando l'origine è un CSV che tratta tutto come testo
  • Lookup — traduci un codice in un valore leggendolo da un'altra tabella, con tabella e campi scelti anch'essi da un elenco filtrabile, non digitati a memoria

E se non ricordi la sintassi esatta di una funzione, non serve: un Assistente dedicato elenca tutte le funzioni disponibili, con descrizione, campi guidati per i parametri e anteprima dal vivo dell'espressione che stai costruendo.

Il cuore delle prestazioni: il motore BatchMove di FireDAC

Qui sta la parte che conta davvero per chi sposta milioni di righe, non dieci. Il vecchio approccio — un comando di inserimento per ogni riga — è semplice ma è anche il modo più lento possibile di scrivere su un database: ogni riga è un'andata e ritorno di rete.

Il nuovo motore ETL di plyxSQL applica prima le trasformazioni riga per riga (dove serve davvero la CPU: espressioni, lookup, conversioni), poi affida la scrittura vera e propria al motore BatchMove di FireDAC, che scrive a blocchi usando l'Array DML nativo del driver — molte meno andate e ritorno di rete rispetto a un inserimento alla volta, con transazioni dimensionate a blocco per un buon equilibrio tra velocità e sicurezza dei dati.

Il risultato: importazioni pensate per l'uso reale, non per la demo.

Progetti multi-database, senza compromessi

Ogni fase può avere una connessione diversa da quella globale del progetto: puoi consolidare dati da più origini eterogenee in un'unica destinazione, o distribuire un'unica origine su più destinazioni, tutto nello stesso progetto. I progetti si salvano e si ricaricano in formato .fdmap, pronti per essere riusati.

Sempre sotto controllo

Una barra di avanzamento mostra fase corrente, riga per riga, con stima quando possibile. Un bottone Annulla ferma l'importazione al primo punto sicuro, senza lasciare la destinazione a metà di un blocco. Gli errori — una riga con un vincolo violato, una tabella non trovata — vengono tracciati e riportati a fine importazione, senza far fallire l'intero processo per un singolo record difettoso.

Per chi è pensato

Per chi amministra database e si ritrova periodicamente a spostare dati tra ambienti. Per chi sviluppa e ha bisogno di popolare un database di test da uno di produzione, ripulendo o mascherando i dati al volo con le regole di trasformazione. Per chi migra da un sistema legacy e non vuole scrivere ed eseguire uno script diverso per ogni tabella.

plyxSQL resta quello che era — un client SQL veloce, leggero, che non ti fa perdere tempo. Solo che adesso, quando i dati devono muoversi, non devi più uscire da lì per farlo.

#SQL #database #ETL #DataEngineering #plyxSQL #FireDAC

venerdì 3 luglio 2026

Free PlyxSQL© SQL Beta - 1.0.0.60 Test E2E backend e frontend

 Free PlyxSQL© SQL Beta - Test E2E backend e frontend

POSTED BY GIULIANO PAGNINI, 03 LUG 2026

Free DOWNLOAD Clicca qui Info https://pgsoft.it/plyxhtml

Test E2E "in un click": come TRestConfigDlg verifica backend e frontend generati

Quando un tool genera codice — API REST, backend, frontend — la vera domanda non è "il generatore ha prodotto dei file?" ma "quei file funzionano davvero?". Nel wizard API REST questa domanda trova risposta in una funzionalità integrata di test end-to-end, azionabile con un solo click direttamente dalla terza pagina del wizard, quella dedicata al log di generazione.

L'idea di fondo è semplice: dopo aver generato il progetto, l'utente può premere un pulsante e vedere, in tempo reale, l'esito di una suite di test che compila, avvia e interroga realmente il backend (e opzionalmente il frontend) appena creato — senza uscire dall'IDE del wizard.

Due pulsanti, due suite

Nella pagina 3 del dialog compaiono due pulsanti dedicati:

  • ▶ Backend E2E — compila e avvia il backend Node.js/Express generato, quindi lo bombarda con richieste HTTP reali verso gli endpoint REST prodotti dal generatore.
  • ▶ Frontend E2E — esegue il type-check Vue (vue-tsc), la build Vite del frontend e infine una suite Playwright headless che simula l'interazione di un utente reale con l'interfaccia generata.

Entrambi i pulsanti restano disabilitati finché non è stata completata con successo una generazione , e funzionano solo se il backend prodotto è di tipo Node.js + Express: gli altri backend non sono ancora coperti da questa infrastruttura di test.

Il flusso del test di backend

Il gestore orchestra l'intero processo:

  1. Verifiche preliminari: la generazione dev'essere andata a buon fine, il backend dev'essere Node/Express, Node.js dev'essere reperibile nel PATH (o in una delle posizioni tipiche di installazione su Windows), e lo script run-e2e.mjs dev'essere individuabile — accanto all'eseguibile, in una cartella superiore, oppure tramite la variabile d'ambiente RESTGEN_E2E_DIR.
  2. Costruzione della command line: il dialog traduce la configurazione scelta dall'utente (driver database, modalità di autenticazione) nel linguaggio atteso dallo script di test — ad esempio jwt/basic/none per l'autenticazione, oppure sqlite/pg/mssql/mysql/firebird per il dialetto SQL.
  3. Una scelta pragmatica su Firebird: se il progetto usa Firebird, il test non si connette a un server Firebird reale, ma usa SQLite in locale (il modulo nativo node:sqlite, zero configurazione). Questo evita di trascinarsi dietro le note incompatibilità di wireCrypt/SRP della libreria node-firebird. Chi vuole davvero testare contro Firebird può comunque lanciare run-e2e.mjs a mano con --db firebird.
  4. Avvio in background: il comando (node + script + parametri) parte su un thread Win32 separato, per non bloccare l'interfaccia.
  5. Feedback in tempo reale: mentre il processo gira, l'output di npm install, compilazione TypeScript, avvio del server e chiamate HTTP scorre riga per riga nella memo di log del dialog.
  6. Riepilogo finale: a processo concluso, viene letto un report JSON con il conteggio di test passati, falliti e con warning, mostrato come riga di riepilogo insieme al percorso del file.

Il thread worker: niente lambda, solo Win32 puro

Uno degli aspetti più interessanti dal punto di vista implementativo è la scelta di non usare TThread, TTask o lambda catturanti, ma un thread Win32 "grezzo" creato con CreateThread. Il commento nel codice è esplicito: bcc32c (il compilatore Clang-based di C++Builder) può confondersi con lambda annidate che catturano membri di classe all'interno di metodi. Per eliminare ogni ambiguità, i parametri necessari al thread vengono impacchettati in una struct semplice (TE2EParams) passata per puntatore:

cpp
struct TE2EParams {
    TButton*  btnRef;
    TLabel*   lbRef;
    TMemo*    memoRef;
    bool*     flagRef;
    wchar_t   rptPath[MAX_PATH];
    wchar_t   cmdLine[4096];
};

Il thread worker (E2EThreadProc) fa tre cose in sequenza:

  1. Lancia il processo (node run-e2e.mjs ...) con CreateProcessW, reindirizzando stdout e stderr su una pipe anonima creata con CreatePipe.
  2. Legge lo stream di output a blocchi da 4 KB, ricostruendo le righe complete (gestendo anche frammenti di riga a cavallo tra due letture) e le inoltra alla UI.
  3. Al termine, tenta di leggere un report JSON dal percorso concordato, estraendo in modo leggero (senza un vero parser JSON, con una ricerca di sottostringa) i contatori pass/fail/warn.

Comunicare con la UI senza rischi di race condition

Aggiornare controlli VCL da un thread che non è quello principale è una delle fonti più comuni di crash nelle applicazioni Windows. Il dialog risolve il problema con due tecniche complementari, entrambe thread-safe per costruzione:

  • SendMessageW con EM_REPLACESEL per appendere ogni riga di log alla memo: un trucco classico che sfrutta il fatto che i messaggi di finestra vengono comunque processati nel thread proprietario del controllo.
  • PostMessageW con messaggi custom (WM_USER+100 per il riepilogo finale, WM_USER+101 per riabilitare il pulsante) per notificare in modo asincrono la conclusione del test, senza bloccare il thread di lavoro in attesa che la UI elabori l'evento.

Il flag booleano che segnala "test in corso" (E2ERunning / FERunning) viene riportato a false direttamente dal thread worker: trattandosi di una singola scrittura di un bool, l'operazione è atomica sia su x86 sia su x64, quindi non serve una sezione critica dedicata.

Un piccolo TTimer (tmrCursor) fa da watchdog: controlla ogni 300 ms se uno dei due flag è ancora attivo e, quando entrambi tornano a false, ripristina il cursore di sistema da clessidra a normale.

Il test del frontend: stessa infrastruttura, contenuto diverso

OnRunFEClick segue la stessa logica del test di backend ma orchestra una pipeline diversa: vue-tsc per il controllo dei tipi TypeScript/Vue, build di produzione con Vite, e infine una suite Playwright headless che simula interazioni utente reali contro il frontend appena costruito, collegato al backend Node generato in precedenza. Il riuso è quasi totale: la stessa struct TE2EParams e la stessa E2EThreadProc vengono impiegate per lanciare ed monitorare anche questo secondo processo, cambiando solo lo script (run-e2e-frontend.mjs) e i percorsi coinvolti (cartella frontend e backend_node).

Perché questo approccio ha senso

Al di là dei dettagli implementativi, la scelta progettuale merita una menzione: invece di limitarsi a generare codice e sperare che funzioni, il wizard chiude il cerchio offrendo una verifica automatica e visibile, integrata nello stesso strumento che ha generato il codice. L'utente non deve aprire un terminale, ricordarsi comandi npm, o installare Playwright a mano: preme un pulsante e osserva, riga dopo riga, se l'API generata risponde correttamente alle richieste reali — autenticazione inclusa, dialetto SQL incluso.

Dal punto di vista ingegneristico, la parte più istruttiva è probabilmente la gestione della concorrenza: un caso di scuola di come far convivere un processo esterno di lunga durata, uno streaming di output in tempo reale e un'interfaccia VCL reattiva, il tutto senza framework di threading di alto livello — solo primitive Win32 usate con disciplina.


#plyxSQL #SoftwareDevelopment #Sicurezza #CPlusPlusBuilder #Delphi #NodeJS #DPAPI #DevSecOps

giovedì 2 luglio 2026

Free PlyxSQL© SQL Beta - authentication systems and CSS frameworks

Free PlyxSQL© SQL Beta - authentication systems and CSS frameworks

POSTED BY GIULIANO PAGNINI, 02 LUG 2026

Free DOWNLOAD Clicca qui Info https://pgsoft.it/plyxhtml

Free PlyxSQL — le password nei file di configurazione ora sono protette a riposo

Ultimo aggiornamento su plyxSQL: i backend generati (C++Builder, Delphi, Node.js) ora proteggono automaticamente le password salvate nei file di configurazione — database, SMTP, JWT secret.

Come funziona:

🔐 Cifratura self-healing, zero configurazione manuale Al primo avvio del server, ogni password trovata in chiaro in configparams.ini / mail.ini viene cifrata automaticamente e riscritta su disco. Da quel momento in poi resta protetta — nessun passaggio manuale, nessuna chiave da gestire a parte.

🪟 Windows (C++Builder / Delphi): DPAPI nativo Cifratura legata alla macchina/utente Windows tramite CryptProtectData/CryptUnprotectData — nessuna libreria esterna, nessuna chiave da custodire. Il rovescio della medaglia, voluto: il valore cifrato non è portabile tra server diversi. Su un nuovo deploy si reinserisce la password in chiaro e si autocifra di nuovo lì.

🟢 Node.js: AES-256-GCM con chiave derivata dalla macchina Stesso principio di design, senza dipendenze da API Windows: chiave derivata da hostname/utente, script CLI dedicato (npm run encrypt-secret) per generare il valore da incollare in .env.

🎛️ Un flag, per chi lo vuole disattivare In fase di sviluppo può essere comodo leggere le password in chiaro senza decifrare nulla — una checkbox nel generatore permette di disattivare la cifratura mantenendo identica l'interfaccia del codice: si passa da un ambiente all'altro senza toccare una riga di logica applicativa.

🧩 Un solo modulo, riutilizzato ovunque La protezione non è legata alla sola autenticazione JWT: è un modulo indipendente (SecretStore), condiviso da tutte le componenti che leggono segreti da file — utile a prescindere dalla modalità di autenticazione scelta nel progetto.

Piccolo passo, ma di quelli che fanno la differenza quando un progetto passa dal notebook di sviluppo al server di produzione.

👉 Scaricalo qui: https://pgsoft.it/plyxhtml

#plyxSQL #SoftwareDevelopment #Sicurezza #CPlusPlusBuilder #Delphi #NodeJS #DPAPI #DevSecOps

Free PlyxSQL© SQL Beta - authentication systems and CSS frameworks

 Free PlyxSQL© SQL Beta - authentication systems and CSS frameworks

POSTED BY GIULIANO PAGNINI, 02 LUG 2026

Free DOWNLOAD Clicca qui Info https://pgsoft.it/plyxhtml

Bootstrap 5.x Black - Autenticazione JWT + 2FA



Bootstrap Italia - Autenticazione JWT + 2FA



Tailwind Black- Autenticazione JWT + 2FA





👉 Scaricalo qui: https://pgsoft.it/plyxhtml

#plyxSQL #SoftwareDevelopment #CPlusPlusBuilder #Delphi #NodeJS #Vue3 #REST #API #JWT #2FA #CodeGeneration