<%@ Language=VBScript %>
<%
Option Explicit
Response.Expires = 0
On Error Resume Next

'Kein Resultat

'*****************************************************************
'Variablendeklarationen
Dim sngbetrag
Dim objcon


'*****************************************************************
'Variableninitialisierung
Set objcon = Server.CreateObject("ADODB.Connection")
'objcon.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & _
'  "DBQ=" & server.MapPath("(/asppages/silvi/db/dbkonten2000.mdb")
objcon.Open "Provider=Microsoft.Jet.OLEDB.4.0; " & _
  "Data Source =" & server.MapPath("/asppages/silvi/db/dbkonten2000.mdb")
  

'*****************************************************************
'Anfang <html>
%>

<!--#include virtual="asppages/silvi/_include/preheader.inc" -->
<html>
  <head>
    <title>ASP fortgeschrittene DB-Techniken: Transaktionsverwaltung</title>
    <meta name="description" content="" />
    <meta name="keywords" content="ASP, DB, Transaktion" />
<!--#include virtual="asppages/silvi/_include/header.inc" -->
  </head>
<body>
<%
'*****************************************************************
'Code innerhalb der HTML-Seite

'Beispiel einer gültigen Transaktion, d.h. Betrag kleiner als Kontostand
sngbetrag = 10

'Anfang der Transaktion
Err.Clear
objcon.BeginTrans 
'Abbuchen von Bankkonto
objcon.Execute "UPDATE tblbankkonten " & _
  "SET saldo = (saldo - " & sngbetrag & ") " & _
  "WHERE kontennr = 1"
  
'Hinzubuchen auf Postkonto
objcon.Execute "UPDATE tblpostkonten " & _
  "SET saldo = (saldo + " & sngbetrag & ") " & _
  "WHERE kontennr = 1"

If objcon.Errors.Count > 0 or Err.number <> 0 then
  'Transaktion zurückgerollt
  objcon.RollbackTrans 
  Response.Write("Es ist ein Fehler aufgetreten, keine Änderung<br />")
  Response.Write ("Fehler " & Err.number & ": " & Err.description  & "<br />")
Else
  'Transaktion abgeschlossen
  objcon.CommitTrans  
  Response.Write(sngbetrag & " Fr. wurden vom Bankkonto aufs Postkonto gebucht<br /><hr>")
End If


'Beispiel einer ungültigen Transaktion, d.h. Betrag grösser als Kontostand
sngbetrag = 100000

'Anfang der Transaktion
Err.Clear
objcon.BeginTrans 

'Abbuchen von Bankkonto
objcon.Execute "UPDATE tblbankkonten " & _
  "SET saldo = (saldo - " & sngbetrag & ") " & _
  "WHERE kontennr = 1"
  
'Hinzubuchen auf Postkonto
objcon.Execute "UPDATE tblpostkonten " & _
  "SET saldo = (saldo + " & sngbetrag & ") " & _
  "WHERE kontennr = 1"

If objcon.Errors.Count > 0 or Err.number <> 0 then
  
  'Transaktion zurückgerollt
  objcon.RollbackTrans 
  Response.Write("Ungültige Transaktion, keine Änderung<br />")
  Response.Write ("Fehler " & Err.number & ": " & Err.description  & "<br />")
Else
  
  'Transaktion abgeschlossen
  objcon.CommitTrans  
  Response.Write(sngbetrag & " Fr. wurden vom Bankkonto aufs Postkonto gebucht<br />")
End If
%>

<!--#include virtual="asppages/silvi/_include/inchtmlnachspann.asp" -->
</body>
</html>


Letzter Update: 26.12.2021 17:48

Zurück zur Liste mit ASP-Beispielen auf  www.ecotronics.ch