OdbcRecordOpen
value OdbcRecordOpen ( value dxDatabase, value BYREF dxRecord, string strSQL, value OpenType = ODBC_OpenSnapshot );
Rückgabewert
Null wenn das Datensatzobjekt dxRecord erfolgreich erstellt wurde, -1 wenn das Datenbankobjekt ungültig ist.
Parameter
dxDatabase
Das Datenbankobjekt, das die Datensätze zur Verfügung stellen soll.
dxRecord
Konnte das Datensatzobjekt erfolgreich angelegt werden, so wird dxRecord mit einem Verweis auf dieses Datensatzobjekt geladen. Nachfolgenden OdbcRecord-Funktionsaufrufen muss dieses Datensatzobjekt übergeben werden.
strSQL
Eine SQL-Anweisung, die angibt, welche Datensätze des Datensatzobjekts gebunden werden sollen.
Der String kann enthalten: Den Namen einer Tabelle oder eine SELECT-Anweisung (optional mit einer WHERE und/oder ORDER BY-Anweisung).
OpenType
Der Arbeitsmechanismus des Datensatzes, der geöffnet werden soll.
Eine der folgenden Werte ist möglich:
ODBC_OpenDynaset |
Ein dynamischer Datensatz, in dem der Datensatzzeiger vorwärts und rückwärts bewegt werden kann. Beim Bewegen des Datensatzzeigers wird der aktuelle Datensatz immer neu aus der Datenbank erzeugt, sodass Änderungen durch andere Benutzer dann sichtbar sind. Diese Methode wird nicht von allen ODBC-Datenbank unterstützt. |
ODBC_OpenSnapshot |
Ein statischer Datensatz, in dem der Datensatzzeiger vorwärts und rückwärts bewegt werden kann. Alle der SQL-Anweisung zugehörigen Datensätze werden in vollem Umfang ausgelesen. Daher sind Änderungen an Datensätzen, die von anderen Benutzern ausgeführt werden, erst dann sichtbar, wenn die Datensätze erneut ausgelesen werden. D.h. ein Bewegen des Datensatzzeigers reicht nicht aus um eventuell geänderte Daten sichtbar zu machen. Es ist dann notwendig, ein OdbcRecordClose und ein anschließendes ObdcRecordOpen oder ein OdbcRecordRequery auszuführen. |
ODBC_OpenForwardOnly |
Ein schreibgeschützter Datensatz, in dem der Datensatzzeiger nur vorwärts bewegt werden kann. |
Bemerkung
Leitet die Öffnensequenz für ein Datensatzobjekt ein. Der Öffnenvorgang ist dann erfolgreich abgeschlossen, wenn Variablen mit Feldern erfolgreich gebunden sind (OdbcRecordBindField) und das Binden erfolgreich abgeschlossen wurde (OdbcRecordBindCompleted). Deshalb ist es zum empfehlen, die einfacher zu handhabende Funktion OdbcRecordOpenEx anstelle von OdbcRecordOpen zu verwenden.
Der erzeugte Verweis auf das Datensatzobjekt dxRecord muss, wenn er nicht mehr verwendet wird, mit OdbcRecordClose geschlossen werden. Beim Stoppen/Beenden der Visualisierung werden alle gültigen und nicht geschlossen Datensatzobjekte automatisch geschlossen.
Verweist dxRecord beim Aufruf auf ein gültiges Datensatzobjekt (das also vorher mit OdbcRecordOpenEx bzw. OdbcRecordOpen erzeugt und nicht mit OdbcRecordClose geschlossen wurde) so wird dieses alte Datensatzobjekt automatisch geschlossen, bevor das neue Datensatzobjekt erzeugt wird.
Beispiel
value dxDatabase; //ein gültiges Datenbankobjekt
value Result;
value dxRecord;
//Ein Datensatzobjekt das alle Felder der Tabelle enthält und mit dem ersten Feld sortiert ist
Result = OdbcRecordOpen (dxDatabase, dxRecord, "SELECT * FROM Meldungen ORDER BY 1;"
//Ein Datensatzobjekt das ein Ergebnisfeld enthält, das die aktuelle Anzahl der Datensätze der Tabelle enthält
Result = OdbcRecordOpen (dxDatabase, dxRecord, "SELECT COUNT(*) FROM Meldungen;"
//Ein Datensatzobjekt das ein Ergebnisfeld enthält, das die aktuelle Summe aller Datensätze des Feldes Wassermenge enthält
Result = OdbcRecordOpen (dxDatabase, dxRecord, "SELECT SUM(Wassermenge) FROM Becken;"
Siehe auch OdbcRecordAddNew, OdbcRecordBindCompleted, OdbcRecordBindField, OdbcRecordCanAppend, OdbcRecordCanBookmark, OdbcRecordCanRestart, OdbcRecordCanScroll, OdbcRecordCanTransact, OdbcRecordCancelUpdate, OdbcRecordClose, OdbcRecordDelete, OdbcRecordEdit, OdbcRecordGetRecordCount, OdbcRecordIsBOF, OdbcRecordIsDeleted, OdbcRecordIsEOF, OdbcRecordIsOpen, OdbcRecordMove, OdbcRecordMoveFirst, OdbcRecordMoveLast, OdbcRecordMoveNext, OdbcRecordMovePrev, OdbcRecordRequery, OdbcRecordSetAbsolutePosition, OdbcRecordUpdate