martedì 23 giugno 2026

Free Beta PlyxSQL: New Schema Designer

Free PlyxSQL© SQL Beta 1.0.0.52

POSTED BY GIULIANO PAGNINI, 23 GIU 2026

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

PlyxSQL: New Schema designer completo con viste, stored procedure e funzioni.


Inserire lo schema 


NEW! Nuovo schema designer con viste, stored procedure e funzioni SQL



Click su vista, funzione o stored procedure apre la finestra editor:




Esempio di schema rappresentato:

/* ============================================================
   Schema di test: CLIENTI + ORDINI
   Dialetto: Firebird 3.0+
   Contiene: 2 tabelle, 1 FK, 3 trigger, 2 SP, 2 funzioni, 2 viste
   ============================================================ */

/* ─── TABELLA: CLIENTI (MASTER TABLE) ──────────────────────── */
CREATE TABLE CLIENTI (  -- MASTER TABLE
  ID            BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
  CODICE        VARCHAR(20)   NOT NULL,
  NOME          VARCHAR(100)  NOT NULL,
  EMAIL         VARCHAR(200),
  ATTIVO        BOOLEAN       NOT NULL DEFAULT TRUE,
  CREATO_IL     TIMESTAMP     NOT NULL DEFAULT CURRENT_TIMESTAMP,
  AGGIORNATO    TIMESTAMP,
  CONSTRAINT UQ_CLIENTI_CODICE UNIQUE (CODICE),
  CONSTRAINT UQ_CLIENTI_EMAIL  UNIQUE (EMAIL)
);

/* ─── TABELLA: ORDINI (TRANSACTION TABLE) ───────────────────── */
CREATE TABLE ORDINI (  -- TRANSACTION TABLE
  ID             BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
  CLIENTE_ID     BIGINT        NOT NULL,
  NUMERO_ORDINE  VARCHAR(30)   NOT NULL,
  STATO          VARCHAR(20)   NOT NULL DEFAULT 'BOZZA'
                   CHECK (STATO IN ('BOZZA','CONFERMATO','SPEDITO','CONSEGNATO','ANNULLATO')),
  IMPORTO_TOTALE DECIMAL(12,2) NOT NULL DEFAULT 0 CHECK (IMPORTO_TOTALE >= 0),
  DATA_ORDINE    DATE          NOT NULL DEFAULT CURRENT_DATE,
  DATA_CONSEGNA  DATE,
  NOTE           BLOB SUB_TYPE TEXT,
  CREATO_IL      TIMESTAMP     NOT NULL DEFAULT CURRENT_TIMESTAMP,
  CONSTRAINT FK_ORDINI_CLIENTE  FOREIGN KEY (CLIENTE_ID) REFERENCES CLIENTI (ID),
  CONSTRAINT UQ_ORDINI_NUMERO   UNIQUE (NUMERO_ORDINE)
);

/* ─── TRIGGER: CLIENTI ──────────────────────────────────────── */
SET TERM ^ ;

CREATE OR ALTER TRIGGER TRG_CLIENTI_BI FOR CLIENTI
BEFORE INSERT ACTIVE
AS
BEGIN
  IF (NEW.CODICE IS NULL OR NEW.CODICE = '') THEN
    NEW.CODICE = 'CLI-' || LPAD(CAST(NEW.ID AS VARCHAR(6)), 6, '0');
  NEW.CREATO_IL = CURRENT_TIMESTAMP;
END^

CREATE OR ALTER TRIGGER TRG_CLIENTI_BU FOR CLIENTI
BEFORE UPDATE ACTIVE
AS
BEGIN
  NEW.AGGIORNATO = CURRENT_TIMESTAMP;
END^

/* ─── TRIGGER: ORDINI ───────────────────────────────────────── */
CREATE OR ALTER TRIGGER TRG_ORDINI_BI FOR ORDINI
BEFORE INSERT ACTIVE
AS
BEGIN
  NEW.NUMERO_ORDINE = 'ORD-' || EXTRACT(YEAR FROM CURRENT_DATE)
    || '-' || LPAD(CAST(NEW.ID AS VARCHAR(5)), 5, '0');
  NEW.CREATO_IL = CURRENT_TIMESTAMP;
END^

/* ─── STORED PROCEDURE: SP_CONFERMA_ORDINE ──────────────────── */
CREATE OR ALTER PROCEDURE SP_CONFERMA_ORDINE (
  P_ORDINE_ID  BIGINT
) RETURNS (
  P_RISULTATO  VARCHAR(20)
) AS
BEGIN
  UPDATE ORDINI
  SET STATO = 'CONFERMATO'
  WHERE ID = :P_ORDINE_ID
    AND STATO = 'BOZZA';
  IF (ROW_COUNT = 0) THEN
    EXCEPTION EX_ORDINE_NON_VALIDO;
  :P_RISULTATO = 'OK';
END^

/* ─── STORED PROCEDURE: SP_ANNULLA_ORDINE ───────────────────── */
CREATE OR ALTER PROCEDURE SP_ANNULLA_ORDINE (
  P_ORDINE_ID  BIGINT
) AS
BEGIN
  UPDATE ORDINI
  SET STATO = 'ANNULLATO'
  WHERE ID = :P_ORDINE_ID
    AND STATO IN ('BOZZA', 'CONFERMATO');
  IF (ROW_COUNT = 0) THEN
    EXCEPTION EX_STATO_NON_VALIDO;
END^

/* ─── FUNCTION: FN_TOTALE_CLIENTE ───────────────────────────── */
CREATE OR ALTER FUNCTION FN_TOTALE_CLIENTE (
  P_CLIENTE_ID  BIGINT
) RETURNS DECIMAL(14,2) AS
DECLARE VARIABLE V_TOT DECIMAL(14,2);
BEGIN
  SELECT COALESCE(SUM(O.IMPORTO_TOTALE), 0)
  INTO :V_TOT
  FROM ORDINI O
  WHERE O.CLIENTE_ID = :P_CLIENTE_ID
    AND O.STATO NOT IN ('BOZZA','ANNULLATO');
  RETURN :V_TOT;
END^

/* ─── FUNCTION: FN_STATO_LABEL ──────────────────────────────── */
CREATE OR ALTER FUNCTION FN_STATO_LABEL (
  P_STATO  VARCHAR(20)
) RETURNS VARCHAR(50) AS
BEGIN
  IF (:P_STATO = 'BOZZA')      THEN RETURN 'In bozza';
  IF (:P_STATO = 'CONFERMATO') THEN RETURN 'Confermato';
  IF (:P_STATO = 'SPEDITO')    THEN RETURN 'In spedizione';
  IF (:P_STATO = 'CONSEGNATO') THEN RETURN 'Consegnato';
  IF (:P_STATO = 'ANNULLATO')  THEN RETURN 'Annullato';
  RETURN 'Sconosciuto';
END^

SET TERM ; ^

/* ─── VISTE ─────────────────────────────────────────────────── */
CREATE OR ALTER VIEW V_ORDINI_CLIENTI AS
SELECT
  O.ID            AS ORDINE_ID,
  O.NUMERO_ORDINE,
  C.CODICE        AS CLIENTE_CODICE,
  C.NOME          AS CLIENTE_NOME,
  O.STATO,
  O.IMPORTO_TOTALE,
  O.DATA_ORDINE,
  O.DATA_CONSEGNA
FROM ORDINI O
  JOIN CLIENTI C ON C.ID = O.CLIENTE_ID;

CREATE OR ALTER VIEW V_CLIENTI_ATTIVI AS
SELECT
  ID,
  CODICE,
  NOME,
  EMAIL,
  CREATO_IL
FROM CLIENTI
WHERE ATTIVO = TRUE;

Scopri PlyxSQL: pgsoft.it/plyxhtml


domenica 21 giugno 2026

Free Beta PlyxSQL: Backend node.js + espress + typescript + MACRO Engine 1.0.0.50

 Free PlyxSQL© SQL Beta 1.0.0.50

POSTED BY GIULIANO PAGNINI, 22 GIU 2026

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

PlyxSQL: il RAD che trasforma uno Schema SQL in un'Applicazione Gestionale Completa

Node + Express + TypeScript: Nuove opzioni e fix per firebird e nuovo Macro Engine di Vuelityx



Nuove opzioni per configurazione Beckend Node.js+Express con Firebird.


Gestione delle MACRO di configurazione post GENERA

sabato 20 giugno 2026

Free PlyxSQL: Backend node.js + espress + typescript 1.0.0.48

Free PlyxSQL© SQL Beta 1.0.0.48

POSTED BY GIULIANO PAGNINI, 20 GIU 2026

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

PlyxSQL: il RAD che trasforma uno Schema SQL in un'Applicazione Gestionale Completa

Node + Express + TypeScript: il backend production-ready per progetti cross-platform è online



Immagina di aprire il tuo tool SQL preferito, disegnare lo schema del database, premere un pulsante — e ritrovarti con un'applicazione gestionale funzionante, front-end e back-end, pronta da deployare. Non è fantascienza: è esattamente quello che fa PlyxSQL con il suo motore di generazione RAD integrato.

Dallo Schema al Software in Pochi Minuti

Ogni applicazione gestionale ripete sempre gli stessi pattern: tabelle dati, form di inserimento, griglie di visualizzazione, combobox collegate alle lookup, validazioni, API REST. Scriverlo a mano ogni volta è tempo sprecato. PlyxSQL analizza il tuo schema SQL e genera automaticamente tutto lo stack applicativo, senza che tu debba toccare una singola riga di boilerplate.

Il flusso di lavoro è semplicissimo:

Definisci lo schema del tuo database (Firebird, SQL Server, PostgreSQL, Oracle) 
Apri PlyxSQL e carica, crea con AI o analizza lo schema esistente
Configura la generazione — scegli tabelle, relazioni lookup, opzioni di UI
Genera il progetto — back-end Node.js + Express + TypeScript e front-end Vue.js 3 completamente strutturati e multi piattaforma
Lancia l'applicazione con npm install && npm run dev e sei operativo oppure apri il file di progetto creato vuelityx e sei subito operativo

Il Back-End Generato: Node + Express + TypeScript

PlyxSQL produce un back-end professionale e production-ready. Per ogni tabella dello schema vengono creati automaticamente:
Controller TypeScript con operazioni CRUD complete (GET, POST, PUT, DELETE)
Routes Express organizzate per risorsa, con middleware di validazione
DTO e interfacce TypeScript derivate direttamente dalle colonne e dai tipi del database
Gestione delle relazioni — le foreign key diventano endpoint JOIN ottimizzati
Connessione al database con pool di connessioni e gestione degli errori integrata
Documentazione OpenAPI/Swagger generata automaticamente dall'analisi dello schema
Il codice prodotto è pulito, modulare e immediatamente manutenibile — non è un dump caotico, è codice che un senior developer riconoscerebbe come proprio.

Il Front-End Generato: Vue.js 3 Pronto all'Uso

Sul lato client, PlyxSQL genera un'applicazione Vue.js 3 con Vite che include tutto quello che serve per una gestione dati reale:
Form dinamici creati dal nuovo generatore di form, per inserimento e modifica, con campi tipizzati in base al tipo colonna SQL (testo, numero, data, booleano, textarea)
Combobox intelligenti — le colonne con foreign key verso tabelle di lookup generano automaticamente <select> o componenti autocomplete popolati via API
Griglie dati con paginazione, ordinamento e ricerca integrati
Validazione lato client derivata dai constraint dello schema (NOT NULL, lunghezza, tipo)
Composables Vue riutilizzabili per fetch, stato e gestione errori
Routing Vue Router configurato per ogni entità gestionale
Store Pinia per la gestione dello stato applicativo
Il risultato non è un prototipo: è un'applicazione funzionante che puoi consegnare al cliente o estendere immediatamente.

Le Combobox Collegate: il Dettaglio che Fa la Differenza

Uno dei punti di forza più apprezzati dagli sviluppatori che usano PlyxSQL è la gestione automatica delle relazioni lookup. Quando lo schema contiene una tabella COMUNI referenziata da CONTRIBUENTI.ID_COMUNE, PlyxSQL non si limita a generare un campo numerico nel form — genera una combobox collegata all'endpoint /api/comuni, con label descrittiva e ricerca integrata.
Questo vale per tutte le relazioni dello schema, a qualsiasi livello di profondità. Il tempo che normalmente si spende a collegare select, endpoint e store sparisce completamente.
RAD Reale per Applicazioni Gestionali Reali
PlyxSQL non è un generatore di demo. È uno strumento progettato per chi sviluppa software gestionale professionale — municipale, fiscale, logistico, manifatturiero — dove i requisiti cambiano spesso e il time-to-market è critico. Ogni volta che lo schema evolve, si rigenera la parte interessata e si aggiorna il progetto in modo incrementale.
Questo è Rapid Application Development come dovrebbe essere: non drag-and-drop su form stilizzati, ma generazione intelligente di codice reale da strutture dati reali.

Scopri PlyxSQL: pgsoft.it/plyxhtml

mercoledì 17 giugno 2026

PlyxSQL: dal database alla REST API in tre passaggi -Beta 1.0.0.45

 PlyxSQL© SQL Beta 1.0.0.45

POSTED BY GIULIANO PAGNINI, 18 GIU 2026

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


Passo 1 — Genera schema DB con AI


Passo 2 — Crea il DB dallo schema oppure trasformalo in un dialetto diverso per il tuo DB preferito




Passo 3 — Crea il Backend e Frontend

Nuove opzioni 
New!! Generatore di form automatici
Nome del webmodule e del file per C++Builder e Delphi, thema dark o light
New!!! In preparazione sistemi completi di autenticazione
Generazione del file di progetto vuelityx.


Apri il frontend in vuelityx senza comandi NPM


New!! generatore di form 

✨ Cosa cambia:

• Analisi automatica dello schema DB
• Generazione dei campi in base a tipo e significato della colonna
• Creazione di widget dedicati:

  • input testuali
  • textarea
  • numeri e valute
  • date e datetime
  • checkbox
  • password
  • email e URL
  • lookup automatici per relazioni FK

• Gestione automatica di:

  • campi obbligatori
  • lunghezze massime
  • valori min/max
  • layout responsive a griglia
  • raggruppamento in sezioni

Il nuovo approccio separa completamente:
🔹 la logica decisionale (come costruire il form)
🔹 il modello intermedio del form
🔹 la generazione del codice Front-End

Questo permette di evolvere il sistema senza legare la generazione a una singola libreria UI o framework.

Il risultato è un processo più vicino a un "form designer intelligente": meno configurazione manuale, più coerenza e velocità nello sviluppo delle applicazioni enterprise.



New!! Swagger HTML




venerdì 12 giugno 2026

PlyxSQL: dal database alla REST API in tre passaggi -Beta 1.0.0.40

 PlyxSQL© SQL Beta 1.0.0.40

POSTED BY GIULIANO PAGNINI, 12 GIU 2026

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

Chiunque abbia mai dovuto esporre un database esistente tramite API conosce la routine: endpoint CRUD per ogni tabella, paginazione, ordinamento, filtri, CORS, una minima autenticazione, un file di configurazione per le credenziali... lavoro necessario, ma sempre uguale a sé stesso da progetto a progetto.



È proprio questo il problema che il wizard "Genera REST API" di plyxSQL prova a togliere di mezzo. È una finestra integrata nell'IDE, organizzata in tre passaggi, che parte dallo schema del database già letto da plyxSQL e arriva a un progetto backend — e, se vuoi, anche frontend — pronto da compilare. Vediamo come è fatta.

Passo 1 — Tecnologie



La prima pagina del wizard è il centro di controllo del progetto: nome, base URL, porta e cartella di output sono i primi campi che si incontrano, con un comodo selettore di cartelle per l'output.

Subito sotto si scelgono le tecnologie:

  • Backend: C++Builder WebBroker o Delphi WebBroker sono già disponibili; una terza opzione, Node.js + Express + TypeScript, in sviluppo. C'è anche la possibilità di non generare alcun backend.
  • Tipo di WebModule (solo per i backend RAD Studio): Standalone GUI, Standalone Console, ISAPI DLL, CGI oppure Apache DSO — tutti i principali modelli di deployment di WebBroker. Il wizard suggerisce anche il nome della variabile WebModule seguendo le convenzioni di RAD Studio (ad esempio, da un progetto "Magazzino" propone "MagazzinoWebModule"), così i file generati si integrano senza attriti nel progetto.
  • Frontend: Vue 3 + Vite + Pinia è pronto oggi; React + Vite e Angular sono segnati come prossimi arrivi. Anche qui è possibile saltare la generazione del frontend.
  • Una checkbox permette di generare anche la documentazione Swagger / OpenAPI 3.0.

La parte finale della pagina è dedicata alla connessione al database, da cui verrà scritto il file configparams.ini usato dal backend generato. Si scelgono driver (Firebird, InterBase, SQL Server, MySQL, PostgreSQL, SQLite, Oracle), host, porta, percorso o nome del database — con un browser file dedicato per i .fdb/.gdb di Firebird — utente e password.

Un dettaglio che vale la pena notare: se nell'albero di plyxSQL è già attiva una connessione al database, il wizard la rileva automaticamente e precompila driver, host, nome database e utente. I campi già personalizzati dall'utente non vengono sovrascritti, e la password — anche se letta dalla connessione attiva — non viene scritta nel file di configurazione a meno che non si spunti esplicitamente l'apposita casella, con un avviso che ne sconsiglia l'uso in produzione.

Passo 2 — Tabelle e colonne

La seconda pagina mostra una griglia con tutte le tabelle dello schema. Con un doppio clic si può:

  • attivare o disattivare l'inclusione di una tabella nell'API generata;
  • cambiare il ruolo della tabella, che determina cosa viene generato per quella tabella.

I ruoli disponibili sono quattro: Master (CRUD completo), Lookup (solo GET, pensata per alimentare combobox e liste di riferimento), ReadOnly (solo lettura) e WriteThrough (GET più PUT/PATCH sulle colonne scelte, senza creazione o cancellazione). La griglia aggiorna in tempo reale anche una colonna "Note" che spiega in breve cosa comporta il ruolo scelto.

Selezionando una riga, una seconda griglia sotto mostra il dettaglio delle colonne di quella tabella: nome (con un'icona ↻ per i campi auto-incrementanti), tipo formattato con lunghezza o precisione/scala, se è nullable, se è chiave primaria e il valore di default. Le viste SQL (tabelle con prefisso V_ o VW_) vengono riconosciute automaticamente e segnalate come "(Vista SQL)".

Passo 3 — Log di generazione

Premendo "Genera" si passa all'ultima pagina, dove un memo in stile console mostra il log della generazione passo per passo, con un'etichetta di stato che segnala in verde il completamento corretto (o un messaggio diverso se qualcosa è andato storto). Da qui un pulsante "Apri cartella" porta direttamente alla directory di output, pronta per essere aperta nell'IDE.

Perché è comodo

Il punto centrale è che il wizard collassa in pochi minuti una serie di decisioni — tecnologia di backend, tipo di deployment, frontend, database, quali tabelle esporre e con quali permessi — che normalmente richiederebbero ore di codice scritto a mano, identico (o quasi) ad ogni nuovo progetto. Il supporto a più database fin da subito, l'attenzione a piccoli dettagli come la gestione della password o il riconoscimento automatico delle viste, e l'integrazione con le convenzioni di RAD Studio fanno la differenza quando si passa dal prototipo al progetto reale.

Le caselle "prossimamente" per Node.js, React e Angular danno già un'idea della direzione: lo stesso schema, gli stessi ruoli per tabella, ma con output diversi a seconda dello stack scelto.

Backend C++Builder:


Frontend vue.js 3