Funzioni di libreria: funzioni DAO |
Le funzioni di questa categoria comprendono dei wrapper per accedere agli oggetti DAO (Data Access Object) esposti da MFC; sono riservate alla versione Windows di Proteus. Ricordiamo che la variabile pubblica predefinita OS è uguale a 2 se l'interprete è Proteus Windows; inoltre, è predefinita la direttiva WINDOWS (è possibile condizionare l'esecuzione di codice dentro !ifdef WINDOWS..!endif).
Molte delle funzioni presentate richiedono il passaggio di parametri
costanti, il cui valore è associato ad un nome mnemonico all'interno del file
includibile daodefs.prt,
che andrebbe incluso qualora si utilizzi una qualsiasi delle funzioni descritte
più sotto. Tale file rende disponibili anche alcune macro (es. DAORSEOF),
che possono essere proficuamente utilizzate per rendere più comprensibile il
codice.
L'insieme delle chiamate è logicamente suddiviso nei seguenti gruppi:
DAOBEGINTRANS(uDataBase)
inizia una transazione sul database corrispondente al handle specificato; deve essere necessariamente aperto almeno un database. Se viene chiuso il database o il recordset senza che sia stata eseguita DAOCOMMITTRANS, tutte le modifiche sono perse. Ritorna 0 se è stato possibile individuare il workspace, -1 altrimenti o in caso di errore.
DAOCOMMITTRANS(uDataBase)
termina la transazione; tutte le modifiche sono trascritte. Ritorna 0 se è stato possibile individuare il workspace, -1 altrimenti o in caso di errore.
DAOROLLBACK(uDataBase)
invalida la transazione; tutte le modifiche sono perse. Ritorna 0 se è stato possibile individuare il workspace, -1 altrimenti o in caso di errore.
DAODBNEW()
crea un oggetto CDaoDatabase e restituisce il suo handle (o -1 in caso di errore)
DAODBFREE(uDataBase)
distrugge l'oggetto CDaoDatabase corrispondente al handle specificato; uDataBase non è più referenziabile. Ritorna -1 (handle errato) o 0 (handle liberato correttamente o già liberato)
DAODBATTRIB(uDataBase, nAttribute[, exp])
restituisce il valore dell'attributo specificato, o lo imposta (se indicato). Solo gli attributi che contengono il termine "Set" possono essere impostati, gli altri sono di sola lettura. Ritorna -1 in caso di errore.
I seguenti valori sono ammessi per nAttribute (vedi il file includibile daodefs.prt):
Valore Significato DAOATTCANTRANSACT non-zero se supporta le transazioni DAOATTCANUPDATE non-zero se l'oggetto è aggiornabile (non read-only) DAOATTGETCONNECT ritorna la stringa di connessione utilizzata per connettere l'oggetto al database DAOATTGETNAME ritorna il nome del database in uso DAOATTGETSETQUERYTIMEOUT ritorna o imposta il numero di secondi dopo i quali le operazioni sul database andranno in timeout. Influenza tutte le successive operazioni di apertura, aggiunta, modifica e altre operazioni su sorgenti ODBC (solo) come chiamate a DAODBEXECUTE DAOATTGETRECORDSAFFECTED ritorna il numero di record influenzati dall'ultima operazione di aggiornamento o dall'ultima chiamata a DAODBEXECUTE DAOATTGETVERSION ritorna la versione del database engine associata con il database DAOATTISOPEN non-zero se l'oggetto è connesso al database
DAODBCLOSE(uDataBase)
chiude la connessione al database; ritorna -1 se uDataBase è invalido, 0 altrimenti. Controllare gli errori DAO (DAOERRCOUNT, ecc.) per sapere se l'operazione è andata a buon fine.
DAODBCREATE(uDataBase, cPathName, cLocale, nOptions)
crea il database cPathName (tipo MDB), con le impostazioni specificate attraverso cLocale ed nOptions. Il default per cLocale è DAOCLangGeneral, per nOptions è 0. Ritorna 0 se ok, -1 in caso di errore.
I valori possibili per cLocale (ordine di collating da utilizzare per la creazione del database, vedi il file includibile daodefs.prt) sono:
- DAOCLangArabic
- DAOCLangCzech
- DAOCLangDutch
- DAOCLangGeneral (da utilizzare per inglese, tedesco, francese, portoghese, italiano e spagnolo moderno)
- DAOCLangGreek
- DAOCLangHebrew
- DAOCLangHungarian
- DAOCLangIcelandic
- DAOCLangNordic
- DAOCLangNorwDan
- DAOCLangPolish
- DAOCLangCyrillic
- DAOCLangSpanish
- DAOCLangSwedFin
- DAOCLangTurkish
- DAOCLangJapanese
- DAOCLangChineseSimplified
- DAOCLangChineseTraditional
- DAOCLangKorean
- DAOCLangThai
- DAOCLangSlovenian
I valori possibili per nOptions sono (sommare le diverse costanti necessarie):
Valore Significato DAOCVersion10 crea con Jet 1.0 DAOCEncrypt salva il database cifrato su disco DAOCDecrypt salva il database non cifrato su disco DAOCVersion11 crea con Jet 1.1 DAOCVersion20 crea con Jet 2.0 DAOCVersion30 crea con Jet 3.0
DAODBCREATEREL(uDataBase, cName, cTable, cExtTable, nAttribute, cField, cExtField)
crea una relazione nel database specificato; ritorna 0 se ok, -1 in caso di errore.
Parametri:
Valore Significato cName nome della relazione cTable tabella primaria nella relazione cExtTable tabella esterna nella relazione nAttribute attributi della relazione cField nome del campo della tabella primaria nella relazione cExtField nome del campo della tabella esterna nella relazione Valori per nAttribute (sommare le diverse costanti necessarie, vedi il file includibile daodefs.prt):
Valore Significato DAOCRelationUnique relazione 1 a 1 DAOCRelationDontEnforce no integrità referenziale DAOCRelationInherited la relazione esiste in un database non concorrente che contiene le due tabelle allegate DAOCRelationUpdateCascade gli aggiornamenti saranno propagati DAOCRelationDeleteCascade le cancellazioni saranno propagate
DAODBDELQUERYDEF(uDataBase, cName)
elimina la querydef cName dall'insieme delle queries. Ritorna 0 se ok, -1 in caso di errore.
DAODBDELREL(uDataBase, cName)
elimina la relazione cName dall'insieme delle relazioni. Ritorna 0 se ok, -1 in caso di errore.
DAODBDELTABLE(uDataBase, cName)
elimina la tabella cName dall'insieme delle tabelle. Ritorna 0 se ok, -1 in caso di errore.
DAODBEXECUTE(uDataBase, cSqlStatement, nOptions)
esegue scSqlStatement (comando SQL) con le optioni nOptions specificate; ritorna 0 se ok, -1 in caso di errore.
Valori per nOptions (sommare le varie costanti richieste, vedi il file includibile daodefs.prt):
Valore Significato DAOCDenyWrite nega la possibilità di scrivere ad altri utenti DAOCInconsistent ammette aggiornamenti inconsistenti (default) DAOCConsistent forza aggiornamenti consistenti DAOCSQLPassThrough lo statement è passato verbatim al data source ODBC per l'elaborazione DAOCFailOnError elimina tutti gli aggiornamenti in caso di errore DAOCSeeChanges genera un errore se un altro utente sta cambiando i dati in editing DAOCDenyRead nega la possibilità di leggere ad altri utenti DAOCReadOnly sola lettura DAOCAppendOnly sola aggiunta in coda DAOCForwardOnly apre in modalità di solo scorrimento in avanti DAOCRunAsync esegue in modo asincrono DAOCExecDirect esegue direttamente
DAODBGETQUERYCOUNT(uDataBase)
ritorna il numero di query definito per il database, -1 in caso di errore.
DAODBGETQUERYINFO(uDataBase, cnIndex)
ritorna un vettore contenente le informazioni sulla query numero cnIndex (se cnIndex è una stringa, viene utilizzata come nome della query di cui si desiderano ottenere le proprietà), -1 se non esiste.
I valori ammessi per l'indice numerico vanno da 1 a DAODBGETQUERYCOUNT(uDataBase).
Il vettore dovrà essere liberato con VECFREE, dopo aver utilizzato le informazioni ivi contenute.
Il contenuto del vettore è (vedi il file includibile daodefs.prt):
Costante Valore Descrizione DAOQI_NAME 1 nome della query DAOQI_TYPE 2 tipo; uno dei seguenti valori:
- DAOCQSelect: la query è di selezione
- DAOCQAction: la query muove o cambia dati, ma non ritorna record
- DAOCQCrosstab: la query ritorna dati in formato tipo spreadsheet
- DAOCQDelete: la query cancella un insieme di righe specificate
- DAOCQUpdate: la query cambia un insieme di record
- DAOCQAppend: la query aggiunge nuovi record alla fine della tabella o della query
- DAOCQMakeTable: la query crea una nuova tabella da un recordset
- DAOCQDDL: la query influenza la struttura delle tabelle o delle loro parti
- DAOCQSQLPassThrough: lo statement è passato direttamente all'engine, senza elaborazione intermedia.
- DAOCQSetOperation: la query crea un recordset tipo snapshot con i dati dei record specificati in due o più tabelle con ogni record duplicato rimosso. Per includere i duplicati, aggiungere la keyword ALL nello statement SQL.
- DAOCQSPTBulk: utilizzato con DAOCQSQLPassThrough per specificare una query che non ritorna record
DAOQI_CDATE 3 Data di creazione DAOQI_CTIME 4 Ora di creazione DAOQI_UDATE 5 Data di ultimo aggiornamento DAOQI_UTIME 6 Ora di ultimo aggiornamento DAOQI_UPDATE 7 Aggiornabile (1 o 0); indica se la query può essere cambiata DAOQI_RECORDSET 8 Ritorna records (1 o 0); solo per query SQL-pass through DAOQI_SQL 9 Stringa SQL; statement eseguito dalla query DAOQI_SOURCE 10 Informazioni sulla sorgente utilizzata in una query pass-through DAOQI_TIMEOUT 11 Numero di secondi attesi dal database engine prima di un errore di timeout
DAODBGETRELCOUNT(uDataBase)
ritorna il numero di relazioni nel database, -1 in caso di errore.
DAODBGETRELINFO(uDataBase, cnIndex)
ritorna un vettore contenente le informazioni sulla relazione numero cnIndex (se cnIndex è una stringa, viene utilizzata come nome della relazione di cui si desiderano ottenere le proprietà), -1 se non esiste.
I valori ammessi per l'indice numerico vanno da 1 a DAODBGETRELCOUNT(uDataBase).
Il vettore dovrà essere liberato con VECFREE dopo aver utilizzato le informazioni ivi contenute, e dopo aver liberato il vettore del quinto elemento; ad esempio:VH = DAODBGETRELINFO(DAOH, 1) ; Utilizza il vettore VH.. [..] ; Libera i vettori VECFREE(VECGET(VH, 5)) VECFREE(VH)Il contenuto del vettore è (vedi il file includibile daodefs.prt):
Costante Valore Descrizione DAORI_NAME 1 nome della relazione DAORI_TABLE 2 nome della tabella primaria nella relazione DAORI_EXTTABLE 3 nome della tabella esterna nella relazione DAORI_TYPE 4 contiene informazioni sul tipo di relazione, che può essere una delle seguenti:
- DAOCRelationUnique: relazione 1 a 1
- DAOCRelationDontEnforce: no integrità referenziale
- DAOCRelationInherited: la relazione esiste in un database non concorrente che contiene le due tabelle allegate
- DAOCRelationUpdateCascade: gli aggiornamenti saranno propagati
- DAOCRelationDeleteCascade: le cancellazioni saranno propagate
- DAOCRelationLeft: la relazione è un join sinistro. Un join sinistro esterno include tutti i record della prima delle due tabelle (parte sinistra), anche se non ci sono valori corrispondenti nella seconda tabella (parte destra)
- DAOCRelationRight: la relazione è un join destro. Un join destro esterno include tutti i record della seconda delle due tabelle (parte destra), anche se non ci sono valori corrispondenti nella prima tabella (parte sinistra)
DAORI_FIELDS 5 vettore di coppie di campi; ogni elemento del vettore è costituito da "campo>campo_esterno"; è necessario liberare questo vettore con VECFREE prima di liberare il vettore che lo contiene.
DAODBGETTABCOUNT(uDataBase)
ritorna il numero di tabelle nel database, -1 in caso di errore.
DAODBGETTABINFO(uDataBase, cnIndex)
ritorna un vettore contenente le informazioni sulla tabella numero cnIndex (se cnIndex è una stringa, viene utilizzata come nome della tabella di cui si desiderano ottenere le proprietà), -1 se non esiste o se l'handle specificato è errato.
I valori ammessi per l'indice numerico vanno da 1 a DAODBGETTABCOUNT(uDataBase).
Il vettore dovrà essere liberato con VECFREE dopo aver utilizzato le informazioni ivi contenute.
Il contenuto del vettore è (vedi il file includibile daodefs.prt):
Costante Valore Descrizione DAOTI_NAME 1 nome della tabella DAOTI_UPDATE 2 aggiornabile (1 o 0) DAOTI_ATTRIB 3 attributi, combinazione dei seguenti valori:
- DAOCAttachExclusive: per tabelle che usano Jet, indica che è una tabella collegata aperta per uso esclusivo
- DAOCAttachSavePWD: per tabelle che usano Jet, indica che lo User ID e la password per la tabella collegata sono salvate con le informazioni di connessione
- DAOCSystemObject: indica che la tabella è di sistema (sola lettura)
- DAOCHiddenObject: indica che la tabella è nascosta (per uso temporaneo, sola lettura)
- DAOCAttachedTable: indica che la tabella è collegata da un database non-ODBC, come Paradox
- DAOCAttachedODBC: indica che la tabella è collegata da un database ODBC, come MS SQL Server
DAOTI_CDATE 4 data di creazione DAOTI_CTIME 5 ora di creazione DAOTI_UDATE 6 data di ultimo aggiornamento DAOTI_UTIME 7 ora di ultimo aggiornamento DAOTI_LINK 8 nome della tabella collegata, se esiste DAOTI_SOURCE 9 sorgente di un database aperto DAOTI_VALIDATE 10 regola di validazione, utilizzata quando si modificano i dati nella tabella; solo per Jet DAOTI_INVALID 11 messaggio visualizzato se la regola di validazione non è soddisfatta DAOTI_RECNUMBER 12 numero di record acceduti nella tabella
DAODBOPEN(uDataBase, cPathName, nExclusive, nReadOnly, cConnString)
stabilisce una connessione ad un database. Ritorna 0 se ok, -1 in caso di errore.
Parametro Descrizione cPathName nome del database, completo di percorso; se vuoto e cConnString è "ODBC;" viene mostrata una finestra di dialogo per selezionare un database. Possono essere utilizzati anche percorsi UNC, come "\\\\MYSERVER\\MYSHARE\\MYDIR\\MYDB.MDB" (il raddoppio del backslash serve in quanto "\" è il carattere di escape) nExclusive 0 se il database viene aperto per accesso condiviso, non-zero per accesso esclusivo nReadOnly 0 se il database viene aperto in lettura/scrittura, non-zero per sola lettura cConnString se si apre un file MDB, specificare il percorso in cPathName e lasciare vuota questa stringa (oppure indicare la password con ";PWD=password"); se si apre un file ODBC, lasciare vuota la stringa cPathName e specificare il DSN in cConnString
DAORSNEW(uDataBase)
crea un oggetto CDaoRecordset a partire dall'handle del database uDataBase. Ritorna l'handle del nuovo recordset, -1 in caso di errore.
DAORSFREE(zHandle)
distrugge l'oggetto CDaoRecordset; zHandle non è più referenziabile. Ritorna 0 se ok, -1 in caso di errore.
DAORSATTRIB(zHandle, cAttribute[, exp])
restituisce il valore dell'attributo specificato; solo gli attributi indicati con "*" richiedono la specifica del parametro exp. Ritorna -1 in caso di errore.
Valori per cAttribute (vedi il file includibile daodefs.prt):
Parametro Descrizione DAORSATTCANAPPEND ritorna non-zero se possono essere aggiunti record DAORSATTCANBOOKMARK ritorna non-zero se il recordset supporta i bookmark DAORSATTCANRESTART ritorna non-zero se può essere ripetuta la query DAORSATTCANSCROLL ritorna non-zero se è possibile muoversi tra i record DAORSATTCANTRANSACT ritorna non-zero se il data source supporta le transazioni DAORSATTCANUPDATE ritorna non-zero se il recordset può essere aggiornato DAORSATTGETDATECREATED ritorna la data di creazione della tabella base del recordset DAORSATTGETTIMECREATED ritorna l'ora di creazione della tabella base del recordset [nota di implementazione: in MFC è accorpata con la funzione precedente] DAORSATTGETDATELASTUPDATED ritorna la data di ultima modifica della tabella base del recordset DAORSATTGETTIMELASTUPDATED ritorna l'ora di ultima modifica della tabella base del recordset [nota di implementazione: in MFC è accorpata con la funzione precedente] DAORSATTGETNAME ritorna il nome del recordset DAORSATTGETSQL ritorna la stringa SQL utilizzata per estrarre il recordset DAORSATTGETVALIDATIONRULE ritorna la stringa di validazione per i dati introdotti nel record DAORSATTGETVALIDATIONTEXT ritorna il testo visualizzato quando la validazione fallisce DAORSATTGETEDITMODE ritorna lo stato dell'editing per il record corrente DAORSATTGETCURRENTINDEX ritorna il nome dell'indice selezionato in un recordset di tipo tabella DAORSATTGETRECORDCOUNT ritorna il numero di record acceduti in un oggetto recordset DAORSATTISBOF ritorna non-zero se il recordset è stato posizionato prima del primo record; non c'è record corrente DAORSATTISDELETED ritorna non-zero se il recordset è posizionato su un record cancellato DAORSATTISEOF ritorna non-zero se il recordset è stato posizionato oltre l'ultimo record; non c'è record corrente DAORSATTISOPEN ritorna non-zero se è stato aperto il recordset DAORSATTGETTYPE ritorna il tipo di recordset: tabella, dynaset, snapshot DAORSATTGETLASTMODBMARK ritorna un bookmark handle al record aggiunto o modificato più recentemente; il bookmark deve essere poi liberato con DAORSFREEBMARK DAORSATTSETCURRENTINDEX* imposta l'indice da utilizzare in un recordset di tipo tabella DAORSATTGETPARAMVALUE* ritorna il valore del parametro specificato (se numerico, considera la posizione; se stringa, considera il nome) DAORSATTSETPARAMVALUENULL* imposta il valore corrente per il parametro specificato a Null (nessun valore)
DAORSPARCOUNT(zHandle)
ritorna il numero di parametri nella query per la costruzione del recordset, -1 in caso di errore.
DAORSPARSET(zHandle, cnParameter, exp[, nType])
imposta a exp il valore del parametro specificato (cnParameter può essere un numero, e in questo caso viene considerato come indice, oppure una stringa, e in questo caso si considera il nome del parametro). I valori ammessi per cnParameter (se numerico) vanno da 1 a DAORSPARCOUNT(zHandle). Ritorna -1 in caso di errore, 0 altrimenti.
Il parametro nType (opzionale) specifica che tipo deve essere assunto per l'interpretazione di exp; se non specificato, automaticamente interpreta come intero lungo, stringa o valore in virgola mobile, in base all'ultimo assegnamento alla variabile. I possibili valori sono (vedi il file includibile daodefs.prt):
Costante Descrizione DAOCBoolean interpreta il valore intero long come True (= 0) o False DAOCByte interpreta il valore intero long come byte (se l'ultima impostazione era una stringa, utilizza il primo carattere della stringa) DAOCInteger interpreta il valore intero long come integer DAOCLong interpreta il valore intero long come long DAOCCurrency interpreta il valore numerico come intero o float, a seconda del contenuto DAOCSingle interpreta il valore virgola mobile come float DAOCDouble interpreta il valore virgola mobile come double DAOCDate interpreta la stringa come data DAOCDateTime interpreta la stringa come data e ora (separati da uno spazio) DAOCTime interpreta la stringa come ora DAOCText interpreta la stringa come testo DAOCMemo interpreta la stringa come testo DAOCLongBinary interpreta la stringa come testo DAOCNull ignora il valore specificato e assegna NULL
DAORSOPEN(zHandle, nOpenType, cSqlStatement, nOptions)
associa al recordset un insieme di record, determinati attraverso l'espressione SQL cSqlStatement, con il modo di apertura e le opzioni specificate. Ritorna 0 se tutto ok, -1 in caso di errore.
I possibili valori dei parametri sono riassunti nella seguente tabella (vedi il file includibile daodefs.prt):
Parametro Descrizione nOpenType può assumere uno dei seguenti valori:
- DAOCOpenTable: tipo tabella con scrolling bidirezionale
- DAOCOpenDynaset: tipo dynaset con scrolling bidirezionale. Questo è il default
- DAOCOpenSnapshot: tipo snapshot con scrolling bidirezionale
- DAOCOpenForwardOnly: tipo scorrimento in avanti (non supportato)
- DAOCOpenDynamic: tipo dinamico
cSqlStatement è una espressione stringa che può contenere:
- il nome di una o più tabelle/query, separate da virgole;
- una espressione SELECT di SQL (con clausole WHERE o ORDER BY se necessarie);
- una query pass-through.
nOptions può essere una o più delle seguenti (sommare i diversi valori, se necessari; il default è 0):
- DAOCAppendOnly: è possibile solo aggiungere nuovi record (solo per dynaset)
- DAOCForwardOnly: il recordset è uno snapshot con solo scrolling in avanti
- DAOCSeeChanges: genera un'eccezione se un altro utente sta cambiando i dati in modifica
- DAOCDenyWrite: gli altri utenti non possono modificare o aggiungere record
- DAOCDenyRead: gli altri utenti non posso visualizzare record (solo per tipo tabella)
- DAOCReadOnly: è possibile solo visualizzare i record; gli altri utenti possono modificarli
- DAOCInconsistent: sono permessi aggiornamenti inconsistenti (solo per dynaset)
- DAOCConsistent: sono permessi solo aggiornamenti consistenti (solo per dynaset)
DAORSOPENTD(zHandle, nOpenType, tHandle, nOptions)
associa al recordset un insieme di record, determinati attraverso l'handle di tabella tHandle, con il modo di apertura e le opzioni specificate. Ritorna 0 se tutto ok, -1 in caso di errore. I possibili valori dei parametri sono riassunti nella seguente tabella (vedi il file includibile daodefs.prt):
Parametro Descrizione nOpenType può assumere uno dei seguenti valori:
- DAOCOpenTable: tipo tabella con scrolling bidirezionale
- DAOCOpenDynaset: tipo dynaset con scrolling bidirezionale. Questo è il default
- DAOCOpenSnapshot: tipo snapshot con scrolling bidirezionale
- DAOCOpenForwardOnly: tipo scorrimento in avanti (non supportato)
- DAOCOpenDynamic: tipo dinamico
tHandle handle di TableDef nOptions può essere una o più delle seguenti (sommare i diversi valori, se necessari; il default è 0):
- DAOCAppendOnly: è possibile solo aggiungere nuovi record (solo per dynaset)
- DAOCForwardOnly: il recordset è uno snapshot con solo scrolling in avanti
- DAOCSeeChanges: genera un'eccezione se un altro utente sta cambiando i dati in modifica
- DAOCDenyWrite: gli altri utenti non possono modificare o aggiungere record
- DAOCDenyRead: gli altri utenti non posso visualizzare record (solo per tipo tabella)
- DAOCReadOnly: è possibile solo visualizzare i record; gli altri utenti possono modificarli
- DAOCInconsistent: sono permessi aggiornamenti inconsistenti (solo per dynaset)
- DAOCConsistent: sono permessi solo aggiornamenti consistenti (solo per dynaset)
DAORSOPENQD(zHandle, nOpenType, qHandle, nOptions)
associa al recordset un insieme di record, determinati attraverso l'esecuzione della query qHandle, con il modo di apertura e le opzioni specificate. Ritorna 0 se tutto ok, -1 in caso di errore. I possibili valori dei parametri sono riassunti nella seguente tabella (vedi il file includibile daodefs.prt):
Parametro Descrizione nOpenType può assumere uno dei seguenti valori:
- DAOCOpenTable: tipo tabella con scrolling bidirezionale
- DAOCOpenDynaset: tipo dynaset con scrolling bidirezionale. Questo è il default
- DAOCOpenSnapshot: tipo snapshot con scrolling bidirezionale
- DAOCOpenForwardOnly: tipo scorrimento in avanti (non supportato)
- DAOCOpenDynamic: tipo dinamico
qHandle handle di QueryDef nOptions può essere una o più delle seguenti (sommare i diversi valori, se necessari; il default è 0):
- DAOCAppendOnly: è possibile solo aggiungere nuovi record (solo per dynaset)
- DAOCForwardOnly: il recordset è uno snapshot con solo scrolling in avanti
- DAOCSeeChanges: genera un'eccezione se un altro utente sta cambiando i dati in modifica
- DAOCDenyWrite: gli altri utenti non possono modificare o aggiungere record
- DAOCDenyRead: gli altri utenti non posso visualizzare record (solo per tipo tabella)
- DAOCReadOnly: è possibile solo visualizzare i record; gli altri utenti possono modificarli
- DAOCInconsistent: sono permessi aggiornamenti inconsistenti (solo per dynaset)
- DAOCConsistent: sono permessi solo aggiornamenti consistenti (solo per dynaset)
DAORSCLOSE(zHandle)
chiude il recordset precedentemente aperto; utilizzare DAORSFREE per distruggere l'oggetto CDaoRecordset. Ritorna 0 se tutto ok, -1 in caso di errore.
DAORSADDNEW(zHandle)
prepara per l'aggiunta di un nuovo record; utilizzare DAORSUPDATE per completare la scrittura del record, dopo aver impostato i valori dei vari campi. Ritorna 0 se tutto ok, -1 in caso di errore.
DAORSEDIT(zHandle)
prepara per la modifica del record corrente; utilizzare DAORSUPDATE per completare la scrittura del record, dopo aver impostato i valori dei vari campi. Ritorna 0 se tutto ok, -1 in caso di errore.
DAORSUPDATE(zHandle)
scrive il record aggiunto o modificato. Ritorna 0 se tutto ok, -1 in caso di errore.
DAORSCANCELUPD(zHandle)
annulla la richiesta di modifica (DAORSEDIT) oppure di aggiunta (DAORSADDNEW) di un nuovo record. Ritorna 0 se tutto ok, -1 in caso di errore.
DAORSDELETE(zHandle)
cancella il record corrente; è necessario spostarsi esplicitamente sul record successivo. Ritorna 0 se tutto ok, -1 in caso di errore.
DAORSFINDFIRST(zHandle, cCondition)
trova il primo record che soddisfa la condizione specificata; ritorna 1 se trovato, 0 altrimenti (in questo caso, non c'è nessun record corrente). Ritorna -1 in caso di errore. Utilizzare DAORSSEEK in recordset di tipo tabella, in quanto questa funzione è più lenta, effettuando una scansione sequenziale. Non è possibile effettuare una ricerca su recordset di tipo snapshot forward-only. Nella ricerca di date, specificare sempre il valore nel formato americano: mese-giorno-anno e racchiudere la stringa della data tra caratteri "#".
DAORSFINDNEXT(zHandle, cCondition)
trova il successivo record che soddisfa la condizione specificata; ritorna 1 se trovato, 0 altrimenti (in questo caso, non c'è nessun record corrente). Ritorna -1 in caso di errore. Vedi anche DAORSFINDFIRST.
DAORSFINDPREV(zHandle, cCondition)
trova il precedente record che soddisfa la condizione specificata; ritorna 1 se trovato, 0 altrimenti (in questo caso, non c'è nessun record corrente). Ritorna -1 in caso di errore. Vedi anche DAORSFINDFIRST.
DAORSFINDLAST(zHandle, cCondition)
trova l'ultimo record che soddisfa la condizione specificata; ritorna 1 se trovato, 0 altrimenti (in questo caso, non c'è nessun record corrente). Ritorna -1 in caso di errore. Vedi anche DAORSFINDFIRST. L'esecuzione di questa funzione può richiedere molto tempo, in quanto viene preventivamente popolato completamente il recordset.
DAORSGETPERCPOS(zHandle)
ritorna la posizione corrente nel database, espressa in percentuale con un numero compreso tra 0 e 100. In recordset dynaset o snapshot, la percentuale è calcolata sul numero di record acceduti fino a quel momento. Non è possibile invocare questa funzione su snapshot di tipo forward-only o su query pass-through su database esterni. Ritorna -1 in caso di errore.
DAORSSETPERCPOS(zHandle, fPercentage)
si sposta al record approssimativamente corrispondente alla posizione specificata in percentuale (0-100). Utilizzare DAORSGETPERCPOS per conoscere la posizione percentuale di un record. Si tenga presente che questa funzione fa sempre riferimento al numero di record acceduti fino a quel momento, non a tutto il recordset. Ritorna 0 se la funzione ha successo, -1 in caso di errore.
DAORSGETABSPOS(zHandle)
restituisce la posizione assoluta del record corrente. Ritorna -1 se non c'è alcun record corrente, altrimenti un valore compreso tra 0 e n-1, se n è il numero totale di record nel recordset. Questa funzione può essere utilizzata solo su recordset di tipo dynaset o snapshot.
DAORSSETABSPOS(zHandle, nPosition)
sposta il record corrente al record nPosition (compresa tra 1 ed n, se n è il numero di record acceduti finora). Solo per dynaset e snapshot. Ritorna 0 se la funzione ha successo, -1 in caso di errore.
DAORSGETBMARK(zHandle)
ritorna un bookmark handle per il record corrente, oppure -1 se non c'è alcun record corrente. Utilizzare DAORSSETBMARK per tornare successivamente allo stesso record.
Utilizzare DAORSFREEBMARK per eliminare il bookmark.
DAORSSETBMARK(zHandle, gHandle)
riposiziona il recordset sul bookmark corrispondente a gHandle. Utilizzare DAORSFREEBMARK per eliminare il bookmark. Ritorna 0 se la funzione ha successo, -1 in caso di errore.
DAORSFREEBMARK(zHandle, gHandle)
elimina dal recordset il bookmark corrispondente a gHandle. Ritorna 0 se la funzione ha successo, -1 in caso di errore.
DAORSMOVE(zHandle, nOffset)
si sposta avanti o indietro di nOffset record; ritorna 1 se la funzione ha successo, 0 altrimenti. Ritorna -1 in caso di errore. Vedi anche DAORSMOVEFIRST.
DAORSMOVEFIRST(zHandle)
si sposta al primo record nel recordset; ritorna 1 se trovato, 0 altrimenti (in questo caso, non c'è nessun record corrente). Ritorna -1 in caso di errore. Non è possibile effettuare spostamenti su recordset di tipo snapshot forward-only. Si verifica un errore se il recordset è vuoto; testare che non valgano contemporaneamente le condizioni DAORSBOF e DAORSEOF prima di eseguire la funzione. Viene perso il valore dell'eventuale record in modifica.
DAORSMOVENEXT(zHandle)
si sposta al successivo record; ritorna 1 se trovato, 0 altrimenti (in questo caso, non c'è nessun record corrente). Ritorna -1 in caso di errore. Vedi anche DAORSMOVEFIRST.
DAORSMOVEPREV(zHandle)
si sposta al precedente record; ritorna 1 se trovato, 0 altrimenti (in questo caso, non c'è nessun record corrente). Ritorna -1 in caso di errore. Vedi anche DAORSMOVEFIRST.
DAORSMOVELAST(zHandle)
si sposta all'ultimo record; ritorna 1 se trovato, 0 altrimenti (in questo caso, non c'è nessun record corrente). Ritorna -1 in caso di errore. Vedi anche DAORSMOVEFIRST. L'esecuzione di questa funzione può richiedere molto tempo, in quanto viene preventivamente popolato completamente il recordset.
DAORSSEEK(zHandle, cOperator, exp1[, exp2..])
cerca nel recordset attraverso l'indice corrente. L'indice corrente si imposta attraverso DAORSATTRIB(zHandle, DAORSATTSETCURRENTINDEX, cnIndex). Solo per recordset di tipo tabella. Ritorna 1 se trova un record, altrimenti 0 (in questo caso il record corrente diventa indefinito). Ritorna -1 in caso di errore.
Parametri:
- cOperator: è una delle stringhe seguenti: "<", "<=", "=", ">=", ">"
- exp1..expn: valori delle chiavi nell'indice; se l'indice prevede più chiavi, è possibile specificare più valori
DAORSFILLCACHE(zHandle, nSize[, gHandle])
riempie la cache con nSize record, a partire dal bookmark gHandle eventualmente specificato. Il riempimento della cache velocizza le operazioni su recordset che si trovano su sorgenti dati ODBC. I record eventualmente modificati in modo concorrente da altri utenti non sono aggiornati nella cache. La dimensione della cache è determinata attraverso DAORSSETCACHESIZE. Ritorna 0 se la funzione ha successo, -1 in caso di errore.
DAORSGETCACHESIZE(zHandle)
restituisce il numero di record previsti nella cache, -1 in caso di errore.
DAORSSETCACHESIZE(zHandle, nSize)
imposta la dimensione della cache per il recordset. Utile solo per recordset basati su sorgenti dati ODBC. Specificare nSize = 0 per non utilizzare la cache. Per aggiornare il contenuto completo della cache, utilizzare prima nSize = 0 e poi ripetere la chiamata con la dimensione richiesta per la cache. Ritorna 0 se la funzione ha successo, -1 in caso di errore.
DAORSGETCACHESTART(zHandle)
ritorna il bookmark handle del record a partire dal quale viene popolata la cache, -1 in caso di errore. Solo per dynaset. Utilizzare DAORSFREEBMARK per eliminare il bookmark.
DAORSSETCACHESTART(zHandle, gHandle)
imposta il bookmark del record a partire dal quale viene popolata la cache. Solo per dynaset. Permette di omettere il terzo parametro della chiamata a DAORSFILLCACHE. Ritorna 0 se la funzione ha successo, -1 in caso di errore.
DAORSGETFIELDCOUNT(zHandle)
ritorna il numero di campi nel recordset, -1 in caso di errore.
DAORSGETFIELDINFO(zHandle, cnIndex)
ritorna un vettore contenente le informazioni sul campo cnIndex, -1 se non esiste o se l'handle specificato è errato. Il vettore dovrà essere liberato con VECFREE dopo aver utilizzato le informazioni ivi contenute. I valori ammessi per cnIndex (se numerico) vanno da 1 a DAORSGETFIELDCOUNT(zHandle); cnIndex può essere un valore numerico oppure una stringa che specifica il nome del campo.
Il contenuto del vettore è (vedi il file includibile daodefs.prt):
Costante Valore Descrizione DAOFI_NAME 1 nome del campo DAOFI_TYPE 2 tipo del campo; può essere uno dei seguenti:
DAOCBoolean
DAOCByte
DAOCInteger
DAOCLong
DAOCCurrency
DAOCSingle
DAOCDouble
DAOCDate
DAOCText
DAOCLongBinary
DAOCMemo
DAOCGUID
DAOCBinary
DAOCBigInt
DAOCVarBinary
DAOCChar
DAOCNumeric
DAOCDecimal
DAOCFloat
DAOCTime
DAOCTimeStampDAOFI_SIZE 3 massima dimensione, in bytes, del campo DAO originale; Proteus converte tutti i valori in stringa oppure numero intero/float, per cui questo dato non è indicativo. Il campo data/ora è convertito in data+ora, separate da uno spazio DAOFI_ATTRIB 4 attributi; somma dei campi seguenti:
- DAOCFixedField: il campo è a lunghezza fissa (default per i campi di tipo numerico)
- DAOCVariableField: il campo è a lunghezza variabile (solo campi testo)
- DAOCAutoIncrField: il valore del campo per i nuovi record è automaticamente incrementato ad un nuovo valore long che non può essere modificato; supportato solo nella tabelle di database Microsoft® Jet
- DAOCUpdatableField: il valore del campo può essere modificato
- DAOCDescending: il campo è ordinato in modo decrescente (Z-A o 100-0); si applica solo ai campi indice
DAOFI_POSITION 5 posizione ordinale; è un valore che specifica l'ordine numerico nel quale si vuole che il campo sia rappresentato rispetto agli altri DAOFI_REQUIRED 6 richiesto (1/0); indica se il campo può assumere il valore Null (0) oppure no (1) DAOFI_ALLOWZL 7 ammetti lunghezza zero (1/0); indica se una stringa vuota è ammessa (1) oppure no (0) DAOFI_COLLATE 8 ordine di collating; vedi DAODBCREATE DAOFI_EXTNAME 9 nome esterno; nome del campo nella tabella esterna che corrisponde al campo DAOFI_EXTFIELD 10 campo sorgente; nome originale del campo nella sorgente dati DAOFI_EXTTABLE 11 tabella sorgente; nome originale della tabella nella sorgente dati DAOFI_VALIDATE 12 regola di validazione; indica la condizione per l'accettazione di un valore modificato o aggiunto DAOFI_INVALID 13 testo di validazione; testo mostrato quando la validazione fallisce DAOFI_DEFAULT 14 valore di default; valore assunto dal campo nei nuovi record aggiunti, se non specificato dall'utente
DAORSGETINDEXCOUNT(zHandle)
ritorna il numero di indici disponibili in un recordset di tipo tabella, -1 in caso di errore.
DAORSGETINDEXINFO(zHandle, cnIndex)
ritorna un vettore contenente le informazioni sull'indice cnIndex, -1 se non esiste; cnIndex può essere un valore numerico oppure una stringa che specifica il nome dell'indice. I valori ammessi per cnIndex (se numerico) vanno da 1 a DAORSGETINDEXCOUNT(zHandle). Il vettore dovrà essere liberato con VECFREE dopo aver utilizzato le informazioni ivi contenute, e dopo aver liberato il vettore del secondo elemento, ad esempio:
VH = DAORSGETINDEXINFO(RSH, 1) ; Utilizza il vettore VH.. [..] ; Libera i vettori VECFREE(VECGET(RSH, 2)) VECFREE(RSH)Il contenuto del vettore è (vedi il file includibile daodefs.prt):
Costante Valore Descrizione DAOII_NAME 1 nome dell'indice DAOII_FIELDS 2 vettore dei campi; ogni elemento è costituito dalla cifra 0 (ascendente) o 1 (discendente) seguita dal nome del campo DAOII_PRIMARY 3 primario (1 o 0); un indice primario contiene campi che, singolarmente o almeno nel loro insieme, costituiscono una chiave primaria. Ci può essere al massimo un indice primario in una tabella DAOII_UNIQUE 4 unico (1 o 0); indica se l'indice rappresenta un indice unico per la tabella; un indice unico contiene campi che, singolarmente o almeno nel loro insieme, sono unici nella tabella per ciascun record DAOII_CLUSTERED 5 clustered (1 o 0); con un indice clustered i dati nella tabella sono memorizzati letteralmente nell'ordine specificato dall'indice. Un indice clustered rappresenta un modo efficiente per accedere ai dati nell'ordine richiesto (non supportato dai database Microsoft® Jet) DAOII_NULLIGNORE 6 ignora Null (1 o 0); se vero (1) i record che hanno Null come chiave secondo l'indice non sono presenti nell'indice; questo riduce lo spazio necessario a memorizzare l'indice DAOII_REQUIRED 7 richiesto (1 o 0); se vero (1) non sono ammessi record che hanno chiave Null DAOII_EXTERN 8 esterno (1 o 0); se vero (1), l'indice è una chiave esterna in una tabella; utilizzato per l'integrità referenziale DAOII_KEYS 9 numero di chiavi distinte nell'indice per la tabella associata
DAORSGETLOCKMODE(zHandle)
ritorna la modalità di blocco in aggiornamento: ottimistica (0) oppure pessimistica (1). Ritorna -1 in caso di errore. In modalità pessimistica, la pagina che contiene il record viene bloccata per tutto il tempo dell'aggiornamento (da DAORSEDIT a DAORSUPDATE); in modalità ottimistica, solo durante la fase di aggiornamento.
DAORSSETLOCKMODE(zHandle, nPessimistic)
imposta la modalità di blocco in aggiornamento in base al parametro nPessimistic: ottimistica (0) oppure pessimistica (1). Ritorna -1 in caso di errore. In modalità pessimistica, la pagina che contiene il record viene bloccata per tutto il tempo dell'aggiornamento (da Edit ad Update); in modalità ottimistica, solo durante l'Update.
DAORSREQUERY(zHandle)
riesegue la query sottostante il recordset, per aggiornare il contenuto con le modifiche che nel frattempo fossero avvenute. Ritorna 0 se ok, -1 in caso di errore.
DAORSGETFIELDVAL(zHandle, cnIndex)
ritorna il valore del campo numero cnIndex (se cnIndex è una stringa, viene utilizzata come nome del campo di cui si desidera ottenere il valore); se il campo non viene trovato, ritorna una stringa vuota. Proteus converte qualunque tipo di campo in stringa oppure numero intero/floating point. I valori ammessi per indice (se numerico) vanno da 1 a DAORSGETFIELDCOUNT(zHandle).
DAORSSETFIELDVAL(zHandle, cnIndex, exp)
imposta il valore del campo cnIndex; cnIndex può essere un valore numerico oppure una stringa che specifica il nome del campo. Ritorna 0 se ok, -1 in caso di errore. I valori ammessi per cnIndex (se numerico) vanno da 1 a DAORSGETFIELDCOUNT(zHandle).
DAORSSETFIELDNULL(zHandle, cnIndex)
imposta a Null il valore del campo cnIndex; cnIndex può essere un valore numerico oppure una stringa che specifica il nome del campo. Ritorna 0 se ok, -1 in caso di errore. I valori ammessi per cnIndex (se numerico) vanno da 1 a DAORSGETFIELDCOUNT(zHandle).
DAOTDCREATE(uDatabase, cName, nAttributes, cSourceTable, cConnect)
crea una TableDef, restituendone lo handle; ritorna -1 in caso di errore; il significato dei parametri è il seguente:
Parametro Descrizione uDatabase handle del database nel quale creare la tabledef cName nome della tabella da creare nAttributes NOR dei seguenti valori (vedi il file includibile daodefs.prt):
- DAOCAttachExclusive: per database che utilizzano il database engine Microsoft® Jet, indica che la tabella è aperta per uso esclusivo
- DAOCAttachSavePWD: per database che utilizzano il database engine Microsoft® Jet, indica che lo user ID e la password sono salvate con le informazioni di connessione
- DAOCSystemObject: indica che la tabella è una tabella di sistema fornita dal database engine Microsoft® Jet
- DAOCHiddenObject: indica che la tabella è una tabella nascosta fornita dal database engine Microsoft® Jet
cSourceTable nome di una tabella da copiare (ignorato se vuoto) cConnect stringa di connessione di default (ignorata se vuota)
DAOTDAPPEND(tHandle)
salva la TableDef nel database. Ritorna 0 se ok, -1 in caso di errore.
DAOTDOPEN(uDatabase, cTableName)
apre la TableDef corrispondente a cTableName nel database uDatabase. Ritorna lo handle della TableDef aperta, -1 in caso di errore.
DAOTDCLOSE(tHandle)
chiude la TableDef. Ritorna 0 se ok, -1 in caso di errore.
DAOTDATTRIB(tHandle, nAttribute[, exp])
restituisce il valore dell'attributo specificato o lo imposta (se la costante prevede la dicitura SET); i possibili valori sono riassunti in tabella (vedi il file includibile daodefs.prt per i valori delle costanti):
nAttribute Descrizione DAOTDCANUPDATE ritorna non zero se la tabella può essere aggiornata (è possibile modificare la definizione dei campi o le proprietà della tabella) DAOTDATTRIBUTES ritorna gli attributi della tabella DAOTDCONNECT ritorna un valore che fornisce informazioni sulla sorgente di una tabella DAOTDCREATDATE ritorna la data di creazione della tabella DAOTDCREATTIME ritorna l'ora di creazione della tabella DAOTDLASTUPDATE ritorna la data di ultimo aggiornamento DAOTDLASTUPDTIME ritorna l'ora di ultimo aggiornamento DAOTDNUMFIELDS ritorna il numero di campi nella tabella DAOTDFIELDINFO ritorna informazioni sul campo exp (se numerico, considera la posizione; se stringa, considera il nome); ritorna un vettore di 14 elementi, vedi DAORSGETFIELDINFO DAOTDINDEXCOUNT ritorna il numero di indici DAOTDINDEXINFO ritorna informazioni sull'indice exp (se numerico, considera la posizione; se stringa, considera il nome); ritorna un vettore di 9 elementi, vedi DAORSGETINDEXINFO DAOTDNAME ritorna il nome della tabella DAOTDRECCOUNT ritorna il numero di record acceduti finora nella tabella DAOTDSOURCE ritorna il nome della tabella sorgente DAOTDVALRULE ritorna la regola di validazione DAOTDVALTEXT ritorna il testo mostrato in caso di errore di validazione DAOTDISOPEN ritorna non zero se la tabella è aperta DAOTDSETATTR imposta ad exp il valore degli attributi della tabella DAOTDSETCONN imposta ad exp il valore della stringa di connessione DAOTDSETNAME imposta ad exp il nome della tabella DAOTDSETSOURCE imposta ad exp il nome della tabella sorgente DAOTDSETVALRULE imposta ad exp la regola di validazione DAOTDSETVALTEXT imposta ad exp il testo mostrato in caso di errore di validazione Ritorna 0 se ok, -1 in caso di errore (in SET); ritorna una stringa vuota in caso di errore.
DAOTDCREATFIELD(tHandle, cName, nType, nSize, nAttributes)
crea un campo nella tabella, con nome, tipo, dimensioni ed attributi specificati. Ritorna 0 se ok, -1 in caso di errore. I possibili valori dei parametri sono:
Parametro Descrizione nType vedi DAOFI_TYPE in DAORSGETFIELDINFO nSize dimensione in bytes nAttributes NOR dei seguenti valori:
- DAOCFixedField: il campo è a lunghezza fissa (default per i campi di tipo numerico)
- DAOCVariableField: il campo è a lunghezza variabile (solo campi testo)
- DAOCAutoIncrField: il valore del campo per i nuovi record è automaticamente incrementato ad un nuovo valore long che non può essere modificato; supportato solo
nelle tabelle di database Microsoft® Jet- DAOCUpdatableField: il valore del campo può essere modificato
- DAOCDescending: il campo è ordinato in modo decrescente (Z-A o 100-0); si applica solo
ai campi indice
DAOTDEXTCREATFIELD(tHandle, nFieldVec)
crea un campo, basandosi sul vettore di 14 elementi di handle nFieldVec (vedi DAORSGETFIELDINFO). Ritorna 0 se ok, -1 in caso di errore.
DAOTDCREATEINDEX(tHandle, nIndexVec)
crea un indice, basandosi sul vettore di 9 elementi di handle nIndexVec (vedi DAORSGETINDEXINFO). Ritorna 0 se ok, -1 in caso di errore.
DAOTDDELFIELD(tHandle, cnField)
elimina il campo cnField (se numerico, considera la posizione; se stringa, considera il nome). Ritorna 0 se ok, -1 in caso di errore.
DAOTDDELINDEX(tHandle, cnIndex)
elimina l'indice cnIndex (se numerico, considera la posizione; se stringa, considera il nome). Ritorna 0 se ok, -1 in caso di errore.
DAOTDREFRESHLINK(tHandle)
aggiorna le informazioni di connessione per la tabella collegata. Ritorna 0 se ok, -1 in caso di errore.
DAOQDCREATE(uDatabase, cQueryName, cSQL)
crea una QueryDef, restituendone lo handle; ritorna -1 in caso di errore; il significato dei parametri è il seguente:
Parametro Descrizione cQueryName nome della querydef da creare (se vuota, è temporanea) cSQL stringa SQL che definisce la query (se vuota, deve essere successivamente impostata con DAOQDSETSQL in DAOQDATTRIB).
DAOQDAPPEND(qHandle)
salva la QueryDef nel database. Ritorna 0 se ok, -1 in caso di errore.
DAOQDOPEN(uDatabase, cQueryName)
apre la QueryDef corrispondente a cQueryName nel database uDatabase. Ritorna l'handle della QueryDef aperta, -1 in caso di errore.
DAOQDCLOSE(qHandle)
chiude la QueryDef. Ritorna 0 se ok, -1 in caso di errore.
DAOQDATTRIB(qHandle, nAttribute[, exp])
restituisce il valore dell'attributo specificato o lo imposta (se la costante prevede la dicitura SET); i valori ammessi sono i seguenti (vedi il file includibile daodefs.prt per i valori delle costanti):
nAttribute Descrizione DAOQDCANUPDATE ritorna non zero se la query può aggiornare il database DAOQDCONNECT ritorna la stringa di connessione associata alla QueryDef DAOQDCREATDATE ritorna la data di creazione della QueryDef DAOQDCREATTIME ritorna l'ora di creazione della QueryDef DAOQDLASTUPDATE ritorna la data di ultimo aggiornamento DAOQDLASTUPDTIME ritorna l'ora di ultimo aggiornamento DAOQDNAME ritorna il nome della QueryDef DAOQDODBCTOUT ritorna il timeout utilizzato da ODBC quando la query è eseguita DAOQDRECAFFECT ritorna il numero di record influenzati dalla query DAOQDRETURNREC ritorna nonzero se la query ritorna record DAOQDSQL ritorna la stringa SQL che specifica la query definita DAOQDTYPE ritorna il tipo della query: di cancellazione, di aggiornamento, di aggiunta, di creazione tabella, ecc. DAOQDISOPEN ritorna non-zero se la query è aperta DAOQDSETCONN imposta la stringa di connessione per una query SQL pass-through su una sorgente ODBC aperta DAOQDSETNAME imposta il nome della query salvata, sostituendo il nome assegnato alla creazione DAOQDSETODBCTO imposta il valore di timeout usato da ODBC quando la query sarà eseguita DAOQDSETRETREC specifica se la query ritorna record; è valido solo per query SQL pass-through DAOQDSETSQL imposta la stringa SQL che specifica la query definita Ritorna 0 se ok, -1 in caso di errore (in SET); ritorna una stringa vuota in caso di errore.
DAOQDEXECUTE(qHandle, nOptions)
esegue la query qHandle, in base a nOptions; non funziona con query che ritornano record. I possibili valori di nOptions, combinabili con NOR, sono (vedi il file includibile daodefs.prt per i valori delle costanti):
Costante Descrizione DAOCDenyWrite nega la possibilità di scrivere ad altri utenti DAOCInconsistent ammette aggiornamenti inconsistenti DAOCConsistent forza aggiornamenti consistenti DAOCSQLPassThrough lo statement è passato verbatim al data source ODBC per l'elaborazione DAOCFailOnError elimina tutti gli aggiornamenti in caso di errore (default) DAOCSeeChanges genera un errore se un altro utente sta cambiando i dati in editing Ritorna 0 se ok, -1 in caso di errore.
DAOQDFIELDCOUNT(qHandle)
ritorna il numero di campi definiti nella query, -1 in caso di errore.
DAOQDGETFIELDINFO(qHandle, cnIndex)
ritorna un vettore contenente le informazioni sul campo cnIndex, -1 se non esiste o se l'handle specificato è errato. Il vettore dovrà essere liberato con VECFREE dopo aver utilizzato le informazioni ivi contenute. I valori ammessi per cnIndex (se numerico) vanno da 1 a DAOQDFIELDCOUNT(qHandle); cnIndex può essere un valore numerico oppure una stringa che specifica il nome del campo. Si veda DAORSGETFIELDINFO per informazioni sul contenuto del vettore.
DAOQDPARAMCOUNT(qHandle)
ritorna il numero di parametri definiti nella query, -1 in caso di errore.
DAOQDPARAMINFO(qHandle, cnIndex)
ritorna un vettore di tre elementi contenente le informazioni sul parametro cnIndex, -1 se non esiste o se l'handle specificato è errato. Il vettore dovrà essere liberato con VECFREE dopo aver utilizzato le informazioni ivi contenute. I valori ammessi per cnIndex (se numerico) vanno da 1 a DAOQDPARAMCOUNT(qHandle); cnIndex può essere un valore numerico oppure una stringa che specifica il nome del parametro. Gli elementi del vettore ritornato sono (vedi il file includibile daodefs.prt per i valori delle costanti):
Costante Descrizione DAOQDPNAME nome del parametro DAOQDPTYPE tipo del parametro DAOQDPVALUE valore del parametro
DAOQDGETPARVALUE(qHandle, cnIndex)
ritorna il valore del parametro cnIndex della query qHandle. I valori ammessi per cnIndex (se numerico) vanno da 1 a DAOQDPARAMCOUNT(qHandle); cnIndex può essere un valore numerico oppure una stringa che specifica il nome del parametro. Ritorna una stringa vuota in caso di errore.
DAOQDSETPARVALUE(qHandle, cnIndex, exp)
imposta il valore del parametro cnIndex della query qHandle. I valori ammessi per cnIndex (se numerico) vanno da 1 a DAOQDPARAMCOUNT(qHandle); cnIndex può essere un valore numerico oppure una stringa che specifica il nome del parametro. Ritorna 0 se ok, -1 in caso di errore.
DAOERRCOUNT(uDataBase)
restituisce il numero di errori nella collezione Errors dell'engine del database (corrisponde a CDaoException.GetErrorcount), -1 in caso di errore.
Dopo ciascuna operazione DAO, è opportuno verificare che il numero di errori restituito da DAOERRCOUNT sia zero; in caso contrario, è possibile utilizzare le funzioni successive per conoscere cosa ha prodotto l'errore. In ogni caso, il numero di errori è azzerato prima di ciascuna operazione DAO.
DAOGETERRORNUM(uDataBase, nIndex)
restituisce il numero dell'errore in posizione nIndex, -1 in caso di errore. I valori ammessi per l'indice vanno da 1 a DAOERRCOUNT(uDataBase).
DAOGETERRORDESC(uDataBase, nIndex)
restituisce una stringa contenente la descrizione dell'errore in posizione nIndex, oppure una stringa vuota in caso di errore. I valori ammessi per l'indice vanno da 1 a DAOERRCOUNT(uDataBase).
DAOGETERRORSRC(uDataBase, nIndex)
restituisce una stringa contenente la sorgente dell'errore in posizione nIndex, oppure una stringa vuota in caso di errore. I valori ammessi per l'indice vanno da 1 a DAOERRCOUNT(uDataBase).
Inizio pagina | Prossimo argomento | Argomento precedente | Indice per argomenti | Indice analitico |