Källkoden för /anders.enges/ado/dbr.asp

<!--#include file="../inc/navstuff.asp" -->
Recorset objektet används för att hatera en tabell.<p>
Metoder<ul>
<li>AddNew<ul>
<li>Sätter in en ny post i en uppdateringsbar recordse. Det är enklare att använda SQL:s INSERT INTO kommando.
</ul>
<li>Close<ul>
<li>Stänger recordset objektets tabell
</ul>
<li>GetRows<ul>
Hämtar ett större antal rader (Inte bra om det är en stor tabell)
</ul>
<li>Move <i>postnummer</i><ul>
<li>Hoppar framåt eller bakåt beroende på talet som specificerats.
<li><i>recordset</i>.Move -1 går en rad bakåt och <i>recordset</i>.Move +2 två rader
framåt. Ett problem är att vi oftast inte har tillgång till en NUVARNDE post eftersom vi öppnar
och stänger tabeller varteftersom en sida laddas.
<li>Vi kan inte gå bakåt i en ForwardOnly recordset.
</ul>
<li>MoveFirst, MoveLast, MovePrevious och MoveNext<ul>
Hoppar till första, sista, föregående och nästa. man kan inte gå bakåt i en ForwardOnly recordet.
<li>man kan kolla EOF propertyn för att se om man kommit till slutet.
</ul>
<li>Open<ul>
<li>
För <i>recordSetObjekt</i>.Open finns följande parametrar<p>
<a name="KK">Syntax:</a><br>
<i>recordSetObjekt</i>.Open, "<i>kommando</i>", <i>connObject</i>, <i>kursortyp</i>, <i>lockTyp</i>, <i>alternativ</i>
<ul>
<li><i>kommando</i> är en oftast giltig SQL SELECT sats (om inte <i>alternativ</i> är satt)
<li><i>connObject</i> är en öppen Connection
<li><i>kursortyp</i> är <ul>
      <li>0 = ForwardOnly (default)<br>
      Öppna tabellen för "forward only". Snabbast för listningar. Man kan aldrig backa bland posterna.
      <li>1 = KeySet kursor.<br>
      Man kan inte se insättningar som andra gjort.
      Raderingar som andra gjort gör att man inte slipper åt posten.
      Ändringar som andra gjort syns. Eftersom vi oftast anvånder ADO genom att
      öppna, läsa och stänga gör inte detta så mycket.
      <li>2 = Dynamic. <br>
      Man kan bläddra framåt och bakåt, sätta in och ta bort. Mest mångsidig men långsamast!
      <li>3 = Static. <br>
      En "Snapshot" av datat för rapporter och listningar
      <li>Man använder oftast 0 för listningar och 1 för övrig hantering...
      </ul>
<li><i>lockTyp</i><ul>
      <li>1 = ReadOnly (default). <br>
      Man kan endast läsa datat, men inte ändra eller radera
      <li>2 = Pessimistic. <br>
      Databassystemet låser posten man arbetar med direkt man börjar arbeta med den
      <li>3 = Optimistic. <br>
      Databassystemet låser posten så sent som möjligt före en ändring.
      <li>4 = BatchOptimistic. <br>
      Optimerad för uppdatering av många poster på en gång.
      <li>Vi använder ReadOnly. Om vi använder SQL UPDATE och INSERT satser så sköter
      databassystemet själv låsningar. Använd annars Optimistic (verkar fungera)
      </ul>
<li><i>alternativ</i><ul>
      <li>1 = Text (default). <br>
      Tolka <i>kommando</i> som en SQL sats
      <li>2 = Tabell. <br>
      <i>kommando</i> är namnet på en tabell
      <li>4 = Stored Procedure. <br>
      <i>kommando</i> är namnet på en stored procedure (endast SQL servers)
      <li>8 = Unknown.<br>
      Vi vet inte vad <i>kommando</i> är för typ????
      <li>1:an och 2:an är de aktuella för Access. Skriv helst alltis SQL satser.
      </ul>
</ul>
kursortyp, lockTyp och alternativ kan bortlämnas om man är nöjd med default värdena<p>
<p>
I praktiken skapas RecordSet med<ul>
<li><span class=asp>Set <i>recordSetObjekt</i> = Conn.Execute("<i>SQL SATS</i>")</span><br>
För listningar<p>
<li><span class=asp>Set <i>recordSetObjekt</i> = Server.CreateObject("ADODB.RecordSet")</span><br>
<span class=asp><i>recordSetObjekt</i>.Open "<i>SQL SATS</i>", <i>connObject</i>, 1, 1 </i></span><br>
för bläddring och<p>

<li><span class=asp><i>recordSetObjekt</i>.Open "<i>TABELL</i>", <i>connObject</i>, 1, 3 , 2</span><br>
för insättingar
</ul>
</ul>
<li>Requery<ul>
<li>Se till att datat avspeglar de sista ändringarna
</ul>
<li>Supports<ul>
<li>Används för att kontrollera vad databasessystemet klarar av
<li>Ex: If <i>recordset</i>.Supports(<i>alternativ</i>) Then ...
<li>Alternativen är:
<ul>
<li>16778240 - klarar av AddNew
<li>16384 - klarar av AbsolutePage och AbsolutePosition
<li>8192 - klarar ab Bookmarks
<li>16779264 - klarar av Delete
<li>512 - klarar av MovePrevious
<li>16809984 - klarar av Update
<li>Bara för att databassystemet klarar av dessa saker behöver det inta alltid vara sant. Access klarar av uppdateringar men en Query i Access behöver inte nödvändigtvis göra det
</ul>
</ul>
<li>Update<ul>
<li>Förverkligar eventuella ändringar</ul>
</ul>

<p>
<!--#include file="../inc/footer.asp" -->