|
 |
 |

Frage: Wann sollte ich ein Recordset für Datenbankoperationen benutzen |
Sobald Sie Datensätze aus einer Datenbank abfragen möchte, empfiehlt sich der Einsatz
von <% Set objRS = Server.CreateObject('ADODB.Recordset') %> und anschliessendem
expliziten Öffnen des Recordsets mit <% objRS.Open SQL, objConn, 3, 3 %>.
Dies hat den Hintergrund, dass die Methode Execute des Connection-Objekts zwar auch ein
Recordset zurückliefert, wenn das SQL-Statement Datensätze mit SELECT ausliest, dieses
Recordset aber standardmässig mit Parametern erstellt wird, die häufg zu Problemen führen
können.
Die wichtigsten Unterschiede bei den Parametern:
- CursorType ist 0 (es kann jeweils nur zum nächsten Datensatz gesprungen werden)
- LockType ist 1 (Das Recordset ist schreibgeschützt)
- BookMark ist nicht verfügbar (es können keine Lesezeichen gesetzt werden)
- PageCount ist nicht verfügbar, bzw. immer -1 (kein Blättern: "Seite x von y möglich)
- RecordCount ist nicht verfügbar, bzw. immer -1 (keine Ausgabe: "x Datensätze gefunden" möglich)
- mehrfaches Auslesen z.B. von Memofeldern ist nicht direkt möglich, sondern nur über Umwege
Wenn Sie lediglich DML-Statements (UPDATE, INSERT, DELETE) absetzen möchten, also
die Datenbank ändern möchten, empfiehlt sich der Einsatz der Methode Execute des
Connection-Objekts.
<%
UpdateSQL = 'UPDATE <tabelle> SET <feld> = <wert> WHERE <feld_id> = <wert_id>
objConn.Execute UpdateSQL
InsertSQL = 'INSERT INTO <tabelle> (feld1, feld2) VALUES ('<wert1>', '<wert2>')
objConn.Execute InsertSQL
DeleteSQL = 'DELETE FROM <tabelle> WHERE <feld_id> = <wert_id>
objConn.Execute DeleteSQL
%> |
|
 |
 |
|
|