Ga naar inhoud

Wat mankeert er aan deze ADO code ( VB ) ?


anoniem

Aanbevolen berichten

Ok, in ADO krijg je default altijd een recordset terug die je niet kan wijzigen. Je kan hem welm doorlopen, maar niet wijzigen. Wil je een recordset wijzigen, dan moet je wat properties aanpassen. Dim rsData As ADODB.Recordset Set rsData = New ADODB.Recordset With rsData .CursorLocation = adUseClient .CursorType = adOpenDynamic .Locktype = adLockBatchOptimistic End With ----- Je krijgt nu een recordset die je kunt wijzigen. Je gebruikt UpdateBatch om de wijzigingen door te voeren. Greetz
Link naar reactie
De CursorLocation property is pas beschikbaar van ADO versie 1.5. Het verdient aanbeveling een reference toe te voegen naar ADO versie 2.7. Wat betreft voorbeeld, een te wijzigen attribuut? Ligt eraan wat je wilt. De cursorlocation property houdt in dat wijzigingen worden gechached op de client wanneer deze op adUseCLient staat, en doormiddel van Update pas aan de server wordt doorgegeven. de waarde adUseServer houdt de server bezig maar is wel directer. In 9 van de 10 gevallen verdient adUseClient de voorkeur. Ik kan tot slot slechts een voorbeeld geven van het ophalen en updaten van gegevens in de database. Ik maak gebruik van een standaard connectie object, maar wat van belang is, is dat deze een connection (ADODB.Connection) teruggeeft. [code:1:0a812be4d4] Private m_objDBConnection As Object Private m_objConnection As ADODB.Connection Private m_rsData As ADODB.Recordset Public Sub updateDatabase(ByVal strName As String, _ ByVal intAge As Integer) Dim strSQL On Error Goto ErrUpdateDatabase Set m_objDBConnection = CreateObject("db_connection.clsConnection") Set m_objConnection = m_objDBConnection.GetADOConnection() strSQL = "SELECT name, age FROM EMP WHERE name = '" & strName & "'" Set m_rsData = New ADODB.Recordset With m_rsData .CursorLocation = adUseClient 'Cursor lokaal .ActiveConnection = m_objConnection .CursorType = adOpenDynamic 'Edit recorset, zowel voorwaarts als achterwaarts .LockType = adLockBatchOptimistic 'Tabellen worden pas bij update commando gelocked voor update . open strSQL End With If Not (m_rsData.BOF and m_rsData.EOF) Then With m_rsData !Age = intAge .UpdateBatch .Close End With msgBox("Record updated") Else MsgBox("No user found") End If Set m_objDBConnection = Nothing Set m_objConnection = Nothing Set m_rsData = Nothing Exit Sub ErrUpdateDatabase: App.LogEvent Err.Number & " " & Err.Description, vbLogEventTypeError End Sub [/code:1:0a812be4d4] Wellicht datje hier wat mee uit de voeten kunt... Greetz, Taz _________________ Live is all about priorities.<br> Was also known as Taz4fun... [ Dit Bericht is bewerkt door: Tazzie op 2002-02-13 10:11 ] [ Dit Bericht is bewerkt door: Tazzie op 2002-02-13 10:15 ]
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

  • Populaire leden

    Er is nog niemand die deze week reputatie heeft ontvangen.

  • Leden

    Geen leden om te tonen

×
×
  • Nieuwe aanmaken...