Tipi supportati
I sei motori di database che un'app può collegare, i campi di ognuno, ciò che ogni motore sa fare, e gli strumenti per creare e modificare tabelle senza uscire dalla piattaforma.
Creando un datasource, il campo Tipo decide tutto il resto: i campi di connessione che il modulo mostra, i segnaposto dei parametri che l'SQL usa, e ciò che la piattaforma ti lascia creare in quel database (viste, procedure, trigger). Questa pagina percorre i sei tipi, uno per uno.

Sguardo rapido
| Tipo | Si collega a | Porta predefinita | Particolarità |
|---|---|---|---|
| PostgreSQL | Server PostgreSQL | 5432 | Interruttore Usa SSL |
| MySQL | Server MySQL | 3306 | Interruttore Usa SSL |
| MariaDB | Server MariaDB | 3306 | Interruttore Usa SSL |
| MS SQL Server | Server Microsoft SQL Server | 1433 | Encrypt, Trust server certificate, TLS legacy, Timeout query (s) |
| Oracle | Database Oracle | — (va nella connect string) | Un unico campo Connect string |
| SQLite | Database locale, su file | — (non c'è un server) | Senza credenziali; il database vive con l'app |
Nota
I primi cinque sono database esterni — server tuoi, che la piattaforma contatta via rete con le credenziali che registri. SQLite è il caso speciale: un database su file, conservato insieme all'app stessa.
PostgreSQL, MySQL e MariaDB
I tre condividono lo stesso modulo:
| Campo | Che cos'è |
|---|---|
| Host | Indirizzo del server (nome o IP) |
| Porta | Arriva compilata con quella del motore (5432 o 3306) |
| Database | Il nome del database dentro il server |
| Utente | L'account con cui la piattaforma si collega |
| Password | La password di quell'account — non viene mai più mostrata |
| Usa SSL | Attiva la cifratura della connessione, se il server la richiede o la supporta |
Dica
Usa un account di database dedicato all'app, con privilegi solo su ciò di cui l'app ha bisogno. Tutte le query — di API, script e console — girano con questo account, e i suoi privilegi sono il tetto di ciò che l'app riesce a fare.
MS SQL Server
Oltre a Host, Porta (1433), Database, Utente e Password, SQL Server porta quattro opzioni proprie:
| Opzione | A che cosa serve |
|---|---|
| Timeout query (s) | Tempo massimo di ogni query, in secondi (arriva a 30). Alzalo se hai stored procedure lunghe — al di sotto, muoiono a metà con un errore di timeout. |
| Encrypt | Cifra la connessione (arriva attivo). |
| Trust server certificate | Accetta il certificato del server senza validarlo — tipico nei server interni con certificato proprio. |
| TLS legacy (SQL Server datato) | Vedi qui sotto. |
Il modulo stesso spiega quando attivare l'ultimo: "Attiva il TLS legacy se la connessione a un SQL Server datato (2008/2012) fallisce con errori SSL/TLS — permette l'handshake con cifrari/protocolli vecchi (implica fidarsi del certificato del server)."

Dica
Connessione a un SQL Server 2008/2012 che fallisce con messaggi SSL? È quasi sempre questo: attiva TLS legacy e prova di nuovo. L'opzione abbassa il livello di sicurezza solo di questa connessione — non tocca gli altri datasource.
Oracle
Oracle non chiede host e porta separati — l'indirizzo va tutto in un campo:
| Campo | Che cos'è |
|---|---|
| Connect string | Nel formato host:port/service_name — es.: ora.interno.esempio.it:1521/CRMPROD |
| Utente | Lo schema/account Oracle con cui la piattaforma si collega |
| Password | La password di quell'account |

Nota
In Oracle, collegarsi come un utente significa entrare nel suo schema — le tabelle di quello schema appaiono nell'albero degli oggetti senza prefisso.
SQLite — il database che vive con l'app
SQLite è il tipo per i dati che appartengono all'app: prototipi, demo, un database piccolo che non giustifica un server. Non ci sono Host, Porta, Utente né Password — c'è un file, ed è la piattaforma a conservarlo:
- Scegli SQLite nel campo Tipo.
- Facoltativamente, usa Importa database (opzionale) per inviare un
file
.db,.sqliteo.sqlite3che hai già. - Premi Crea. Come dice l'aiuto del campo: "Senza file, viene creato un database vuoto. Il file resta salvato con l'app — non ci sono percorsi da indicare."

Tre comportamenti da conoscere:
- In creazione non c'è Prova connessione — il file non esiste ancora, non c'è nulla da provare. Il pulsante appare dopo il salvataggio, in modifica.
- La modifica non sostituisce mai il file — il file è il datasource; modificare la connessione non crea un database nuovo né cancella dati.
- Eliminare il datasource dice addio ai dati — al contrario dei tipi esterni, qui il database vive con l'app.
Che cosa sa fare ogni motore
La piattaforma ti offre solo ciò che il motore supporta — le opzioni che non esistono in un motore non appaiono nel suo menu. La mappa:
| Capacità | PostgreSQL | MySQL | MariaDB | MS SQL Server | Oracle | SQLite |
|---|---|---|---|---|---|---|
| Viste | Sì | Sì | Sì | Sì | Sì | Sì |
| Funzioni / procedure | Sì | Sì | Sì | Sì | Sì | No |
| Trigger — momenti | BEFORE, AFTER, INSTEAD OF | BEFORE, AFTER | BEFORE, AFTER | AFTER, INSTEAD OF | BEFORE, AFTER, INSTEAD OF | BEFORE, AFTER, INSTEAD OF |
| Trigger con più eventi in una volta | Sì | No (uno per evento) | No (uno per evento) | Sì | Sì | No |
| Trigger disegnato nel canvas visuale | Sì | Sì | Sì | Sì | Sì | No (solo SQL) |
| Modificare tipo/nullabilità di una colonna esistente | Sì | Sì | Sì | Sì | Sì | No |
| Campo Schema (opzionale) negli oggetti | Sì | — | — | Sì | Sì | — |
Nota
In SQL Server non esiste BEFORE — l'equivalente è INSTEAD OF. E in SQLite, cambiare il tipo di una colonna esistente obbliga a ricreare la tabella; l'opzione non appare.
Creare e modificare oggetti (DDL)
Non ti serve un altro strumento per lavorare sulla struttura del database: il menu ⋯ di ogni datasource nel pannello Dati crea oggetti, e l'albero modifica quelli esistenti. In tutti i casi la piattaforma genera l'SQL per il motore del datasource e lo esegue davvero nel database.
| Azione | Che cosa fa |
|---|---|
| Nuova tabella | "Definisci le colonne — generiamo il CREATE TABLE per il motore e lo eseguiamo." Colonne con tipo, Consente NULL, Chiave primaria (PK), Incremento automatico, e nome descrittivo per le app. |
| Modifica struttura (su una tabella) | "Modifica colonne e indici — genera ed esegue l'ALTER / CREATE INDEX corrispondente." Crea ed elimina anche gli indici. |
| Nuova vista | Scrivi l'SQL della vista e la esegue. |
| Nuova funzione / procedura | Scrivi l'SQL e la esegue (nei motori che le supportano). |
| Nuovo trigger | Dati iniziali nel modale; il flusso si costruisce dopo nel canvas visuale. |
| Aggiorna oggetti | Rilegge la struttura del database — usalo dopo modifiche fatte fuori dalla piattaforma. |

Atenção
Questo è DDL vero, nel tuo database vero — un DROP o un ALTER qui è definitivo tanto quanto eseguito in qualsiasi altro client SQL. E funziona solo se l'Utente della connessione ha i privilegi per creare e modificare oggetti.
La Console SQL
In fondo alla schermata Modello di ogni datasource vive la Console SQL: scrivi a sinistra, premi Esegui, e i risultati appaiono in tabella (fino a 500 righe), con i filtri per colonna. L'editor completa automaticamente con le tabelle e le colonne del datasource, e il Visualizza dati di qualsiasi tabella dell' albero apre la console già con un select pronto.

La console è per gli amministratori, e le operazioni di scrittura restano registrate nell' audit — i dettagli sono nella pagina Provare la connessione e la sicurezza.
Segnaposto dei parametri per motore
Quando scrivi SQL negli script, i valori passano in un elenco a parte — mai incollati nella frase — e ogni motore ha la sua sintassi di segnaposto:
| Motore | Segnaposto | Esempio |
|---|---|---|
| PostgreSQL | $1, $2, … |
select * from contas where cidade = $1 |
| MySQL / MariaDB | ? |
select * from contas where cidade = ? |
| MS SQL Server | @p1, @p2, … |
select * from contas where cidade = @p1 |
| Oracle | :1, :2, … |
select * from contas where cidade = :1 |
| SQLite | ? |
select * from contas where cidade = ? |
Dica
Nei passaggi SQL delle API questa tabella non ti serve: scrivi :nomeDoArg e
la piattaforma si occupa della conversione per il motore scelto. In Oracle, evita di
passare le date come parametro — preferisci il letterale, es.:
TO_DATE('2026-06-25','YYYY-MM-DD').