In questa sezione sono descritte le configurazioni necessarie per interfacciarsi con i diversi driver per la connessione con i DBMS.
Attualmente non prevista la gestione.
La dll del driver è già presente in php. Nel file 'php.ini' occorre abilitare la seguente istruzione:
extension=php_pdo_pgsql.dll
[CITYWARE] dbms=pgsql host=[host] database=[database] realname=cityware user=[user] pwd=[pwd] fieldskeycase=UPPER drivertype=PDO charset=LATIN9 stripspaces=true defaultString=blank searchSequenceField=naming
Scaricare il driver direttamente dal sito di Microsoft utilizzando questo link. Prendere SQLSRV32.EXE eseguirlo e copiare su '…\xampp\php\ext' solo i file php_pdo_sqlsrv_56_ts.dll e php_sqlsrv_56_ts.dll generati dall'exe.
ATTENZIONE! Dalla versione 3.1 in avanti, è necessario scaricare anche il driver ODBC per MS Sql Server, sempre dal sito di Microsoft, utilizzando questo link.
Dopo aver installato i driver, nel file 'php.ini' occorre aggiungere:
extension=php_sqlsrv_56_ts.dll extension=php_pdo_sqlsrv_56_ts.dll
[CITYWARE] dbms=mssqlserver host=[host\istanza] oppure [host:port] database=[database] realname=cityware drivertype=PDO user=[user] pwd=[pwd] dateFormat=YMD stripspaces=true defaultString=blank searchSequenceField=naming
ATTENZIONE: Nel caso si utilizzi il driver pdo_sqlsrv per Windows il parametro host deve essere scritto nella seguente forma:
host=[host\istanza] oppure [host,porta] oppure [host] nel caso la porta sia quella di default 1433
Utilizzare Instant Client (a seconda della versione di Oracle)
Dopo aver installato i driver, nel file 'php.ini' occorre abilitare la seguente istruzione:
extension=php_pdo_oci.dll
[CITYWARE] dbms=oracle host=[nome tnsnames.ora] sid=[SID] database=[database] realname=cityware user=[user] pwd =[pwd] drivertype=PDO dateFormat=YYYY-MM-DD defaultString=blank searchSequenceField=naming
[CITYWARE] dbms=oracle host=X:1521 Y:1521 ;;host separate dello spazio hostProperties=FAILOVER:ON ;;proprietà separate dallo spazio: value (es: LOAD_BALANCE:ON FAILOVER:ON) servicename= CITYWARE_UNIONE realname=cityware user=cityware pwd=cityware drivertype=PDO dateFormat=YYYY-MM-DD stripspaces=1 defaultString=blank searchSequenceField=naming
Per abilitare PDO, modificare la seguente impostazione nel file config.ini:
[dbms] dbengine=DBPDO attivaTransazioni=1
Le definizioni delle tabelle vengono messe in cache. Per attivare la cache, occorre modificare il file config.ini aggiungendo le seguenti righe: (Oltre alle definizioni delle colonne, la tableDef contiene anche le eventuali relazioni)
[cache] type=FILE root=C:/Works/PhpDev/dati/itaTest/cache
Per la validazione, la logica è la seguente:
Per stabilire il validatore specifico, la regola è la seguente:
Può essere necessario escludere alcuni campi dalla validazione, implementando il metodo initExcludeFields, es:
public function initExcludeFields() { parent::initExcludeFields(); $this->addExcludeField("ISO3166_A2"); $this->addExcludeField("ISO3166_A3"); $this->addExcludeField("ISO3166_N3"); $this->addExcludeField("CODNAZICO"); $this->addExcludeField("CODNAZIMC"); $this->addExcludeField("CODGOVE"); $this->addExcludeField("LLPIVANAZ"); $this->addExcludeField("CODAGEO"); $this->addExcludeField("CODEST_770"); }
E' possibile effettuare il salvataggio e cancellazione (in transazione) dei dati aggiuntivi rispetto al record principale. I tipi di relazione gestiti sono:
Occorre effettuare l'override del metodo 'caricaDatiAggiuntivi'. Come esempio, vedere 'cwbBtaGrunaz_Rel'.
Per ogni connessione, esiste una sola transazione (non vengono annidate).
Abilitare sul Hook.ini il listner:
[connectionPerRequestPDOHook.php] active=1
Gestione delle connessione e della transazione
La connessione viene salvata come resources all'interno del App→$utente in modo da avere una connessione per request Punti fermi:
Transazioni: Punti fermi:
La chiusura (commit\rollback) deve essere fatta esplicitamente con l'attributo 'manual'. Qualsiasi altro salvataggio\cancellazione\inserimento lanciato con attivo lo stato manual non interferisce con la transazione.
Per leggere e scrivere correttamente un “blob” effettuare le seguenti operazioni:
In fase paginazione è obbligatorio per i database Mssql\Oracle arrivare a paginare i dati con un ordinamento impostato. L'ordinamento può essere impostato:
5 visualizzazioni.