 |
XLII. Funzioni Firebird/InterBase
Firebird/InterBase è un database relazionale che offre diverse features ANSI SQL-92
che gira su sistemi Linux, Windows, e su diverse piattaforma Unix. Firebird/InterBase
offre un'eccellente meccanismo di concorrenza, alte performance, ed un potente linguaggio
a supporto per le stored procedure ed i trigger. E' attivo in sistemi di produzione,
sotto diversi nomi, dal 1981.
InterBase è il nome della versione protetta di questo RDBMS che fu
sviluppata da Borland/Inprise. Maggiori informazioni su InterBase sono
disponibili al link http://www.borland.com/interbase/.
Firebird è un progetto commercialmente indipendente di programmatori C e C++,
tecnici, supporter che hanno sviluppato e migliorato un database
relazionale multi-piattaforma basato sul codice sorgente rilasciato da
Inprise Corp (ora nota come Borland Software Corp) under the InterBase
Public License v.1.0 on 25 July, 2000. More information about Firebird is
available at http://www.firebirdsql.org/.
Nota:
Questo modulo supporta la versione 5 e successive di InterBase e tutte le versioni di Firebird.
Il supporto per la versione 5.x di InterBase sarà rimosso dalla versione 5 di PHP.
Questo database usa il carattere di singolo apice (') come carattere di escape, un
comportamento simile al database Sybase, aggiungere al proprio
file php.ini la seguente direttiva:
Per abilitare l'utilizzo di InterBase, configurare il PHP
con --with-interbase[=DIR], dove DIR indica
la directory di installazione di InterBase; il defualt è
/usr/interbase.
Nota per gli utenti Win32:
Per abilitare questo modulo nel mondo Windows, occorre copiare
gds32.dll dalla cartella DLL della distribuzione PHP/Win32
alla cartella SYSTEM32 della machhina Windows. (Ad esempio: C:\WINNT\SYSTEM32
o C:\WINDOWS\SYSTEM32). Nel caso in cui il server InterBase sia sulla
medesima macchina in cui gira il PHP, queste DLL sono già installate. Quindi non occorre copiare
gds32.dll dalla cartella DLL.
Il comportamento di queste funzioni è influenzato dalle impostazioni di php.ini.
Tabella 1. Parametri di configurazione di InterBase Nome | Default | Modificabile |
---|
ibase.allow_persistent | "On" | PHP_INI_SYSTEM | ibase.max_persistent | "-1" | PHP_INI_SYSTEM | ibase.max_links | "-1" | PHP_INI_SYSTEM | ibase.default_db | NULL | PHP_INI_SYSTEM | ibase.default_user | NULL | PHP_INI_ALL | ibase.default_password | NULL | PHP_INI_ALL | ibase.default_charset | NULL | PHP_INI_ALL | ibase.timestampformat | "%Y-%m-%d %H:%M:%S" | PHP_INI_ALL | ibase.dateformat | "%Y-%m-%d" | PHP_INI_ALL | ibase.timeformat | "%H:%M:%S" | PHP_INI_ALL |
Per maggiori dettagli e definizioni delle costanti PHP_INI_* vedere
ini_set().
Breve descrizione dei parametri
di configurazione.
- ibase.allow_persistent
boolean
Stabilisce se permettere o meno le
connessioni persistenti
a Firebird/InterBase.
- ibase.max_persistent
integer
Indica il numero massimo di connessioni persistenti a Firebird/InterBase per
processo. Le ulteriori connessioni create con ibase_pconnect() saranno
non persistenti.
- ibase.max_links
integer
Indica il numero massimo di connessioni a Firebird/InterBase per processo, incluse
le connessioni persistenti.
- ibase.default_db
string
Il database di default a cui connettersi quando viene chiamata la funzione ibase_[p]connect()
senza specifica del nome del database. Se questo valore è impostato ed è abilitata
la modalità sicura SQL, non saranno permesse connessioni ad altri database.
- ibase.default_user
string
Il nome utente da utilizzarsi per la connessione al database
se non viene specificato.
- ibase.default_password
string
La password da utilizzare per connettersi al database
se non viene specificata in fase di connessione.
- ibase.default_charset
string
Il set di caratteri da utilizzare per la connessione al database
se non ne viene specificato uno al momento della connessione.
- ibase.timestampformat
string
- ibase.dateformat
string
- ibase.timeformat
string
Questo parametro è utilizzato per utilizzato per impostare il formato di data ed ora
utilizzato per la restituzione di date ed ore dai set di risultati
o per l'impostazione degli argomenti di data ed ora.
Queste costanti sono definite da questa estensione e
sono disponibili solo se l'estensione è stata compilata
nel PHP o se è stata caricata dinamicamente a runtime.
Le seguenti costanti possono essere passate alle funzioni ibase_trans()
per indicare il comportamento delle transazioni.
Tabella 2. Flag per le transazioni Firebird/InterBase Costante | Descrizione |
---|
IBASE_DEFAULT |
Sono utilizzate le impostazioni di default per la transazione. Quale default è determinato
dalla libreria client, che, nella maggior parte dei casi,
lo definisce come
IBASE_WRITE|IBASE_CONCURRENCY|IBASE_WAIT. | IBASE_READ | Inizia una transazione di sola lettura. | IBASE_WRITE | Inizia una transazione di lettura/scrittura. | IBASE_CONSISTENCY | Inizia una transazione con il livello di isolamento impostato a
'consistency', il quale indica che una transazione non leggere da tabelle
che stanno per essere modificate da altre transazioni concorrenti. | IBASE_CONCURRENCY | Inizia una transazione con il livello di isolamento impostato a
'concurrency' (o 'snapshot'), il quale indica che la transazione
può accedere a tutte le tabelle, ma non può rilevare modifiche eseguite
da altre transazioni dopo la partenza della transazione. | IBASE_COMMITTED | Inizia una transazione con il livello di isolamento impostato a
'read committed'. Questo flag dovrebbe essere abbinato con
IBASE_REC_VERSION oppure con
IBASE_REC_NO_VERSION. Questo livello di isolamento permette
l'accesso alle modifiche quando queste vengono eseguite dopo l'inizio della
transazione. Se si indica IBASE_REC_NO_VERSION,
si può accedere solo all'ultima versione della riga. Se si indica
IBASE_REC_VERSION, una riga può essere letta
anche se vi è una modifica pendente da parte di una transazione concorrente.
| IBASE_WAIT | Indica che la transazione deve attendere e riprovare in caso
di conflitto. | IBASE_NOWAIT | Indica che la transazione deve fallire immadiatamente
in caso di conflitto di accesso. |
La seguenti costanti possono essere utilizzate con ibase_fetch_row(),
ibase_fetch_assoc() o ibase_fetch_object()
per indicare il comportamento nello scarico dei dati.
Tabella 3. Flag di scarico dati in Firebird/InterBase Costante | Descrizione |
---|
IBASE_FETCH_BLOBS | Disponibile anche come IBASE_TEXT per compatibilità
verso il passato. Forza lo scarico in linea dei contenuti BLOB, anzichè
essere scaricati come indentificatori BLOB. | IBASE_FETCH_ARRAYS | Forza lo scarico in linea delle matrici. Altrimenti le matrici
sarebbero restituite come variabili. La matrici possono essere utilizzate come argomenti solo
per le operazioni di INSERT, poichè, al momento, non vi sono funzioni
che trattano le matrici.
| IBASE_UNIXTIME | Indica di restituire i dacmpi data e ora non come stringa,
ma come UNIX timestamp (il numero dei secondi da una certa data,
che è il 1-Gen-1970 0:00 UTC). Possono esserci problemi se utilizzato con date anteriori al
1970 su certi sistemi.
|
Le seguenti costanti sono utilizzate per passare richieste ed opzioni alle
(ibase_server_info(), ibase_db_info
(), ibase_backup(), ibase_restore
() e ibase_maintain_db()). Fare riferimento ai manuali di
Firebird/InterBase per avere il significato di queste funzioni.
- IBASE_BKP_IGNORE_CHECKSUMS
- IBASE_BKP_IGNORE_LIMBO
- IBASE_BKP_METADATA_ONLY
- IBASE_BKP_NO_GARBAGE_COLLECT
- IBASE_BKP_OLD_DESCRIPTIONS
- IBASE_BKP_NON_TRANSPORTABLE
- IBASE_BKP_CONVERT
Options to ibase_backup()()
- IBASE_RES_DEACTIVATE_IDX
- IBASE_RES_NO_SHADOW
- IBASE_RES_NO_VALIDITY
- IBASE_RES_ONE_AT_A_TIME
- IBASE_RES_REPLACE
- IBASE_RES_CREATE
- IBASE_RES_USE_ALL_SPACE
Options to ibase_restore()
- IBASE_PRP_PAGE_BUFFERS
- IBASE_PRP_SWEEP_INTERVAL
- IBASE_PRP_SHUTDOWN_DB
- IBASE_PRP_DENY_NEW_TRANSACTIONS
- IBASE_PRP_DENY_NEW_ATTACHMENTS
- IBASE_PRP_RESERVE_SPACE
- IBASE_PRP_RES_USE_FULL
- IBASE_PRP_RES
- IBASE_PRP_WRITE_MODE
- IBASE_PRP_WM_ASYNC
- IBASE_PRP_WM_SYNC
- IBASE_PRP_ACCESS_MODE
- IBASE_PRP_AM_READONLY
- IBASE_PRP_AM_READWRITE
- IBASE_PRP_SET_SQL_DIALECT
- IBASE_PRP_ACTIVATE
- IBASE_PRP_DB_ONLINE
- IBASE_RPR_CHECK_DB
- IBASE_RPR_IGNORE_CHECKSUM
- IBASE_RPR_KILL_SHADOWS
- IBASE_RPR_MEND_DB
- IBASE_RPR_VALIDATE_DB
- IBASE_RPR_FULL
- IBASE_RPR_SWEEP_DB
Options to ibase_maintain_db()
- IBASE_STS_DATA_PAGES
- IBASE_STS_DB_LOG
- IBASE_STS_HDR_PAGES
- IBASE_STS_IDX_PAGES
- IBASE_STS_SYS_RELATIONS
Options to ibase_db_info()
- IBASE_SVC_SERVER_VERSION
- IBASE_SVC_IMPLEMENTATION
- IBASE_SVC_GET_ENV
- IBASE_SVC_GET_ENV_LOCK
- IBASE_SVC_GET_ENV_MSG
- IBASE_SVC_USER_DBPATH
- IBASE_SVC_SVR_DB_INFO
- IBASE_SVC_GET_USERS
Opzioni per ibase_server_info()
|  |