home *** CD-ROM | disk | FTP | other *** search
/ Chip 2000 May / Chip_2000-05_cd1.bin / zkuste / Perl / ActivePerl-5.6.0.613.msi / 䆊䌷䈹䈙䏵-䞅䞆䞀㡆䞃䄦䠥 / _6effab7a7409ac8e4929cb0df62ea78a < prev    next >
Text File  |  2000-03-15  |  2KB  |  67 lines

  1. <%@ LANGUAGE = PerlScript%>
  2. <html>
  3. <head>
  4. <meta name="GENERATOR" content="Tobias Martinsson">
  5.  
  6. <title>ADO Transactions</title>
  7. </head>
  8. <body>
  9. <BODY BGCOLOR=#FFFFFF>
  10.  
  11. <!-- 
  12.     ActiveState PerlScript sample 
  13.     PerlScript:  The coolest way to program custom web solutions. 
  14. -->
  15.  
  16. <!-- Masthead -->
  17. <TABLE CELLPADDING=3 BORDER=0 CELLSPACING=0>
  18. <TR VALIGN=TOP ><TD WIDTH=400>
  19. <A NAME="TOP"><IMG SRC="PSBWlogo.gif" WIDTH=400 HEIGHT=48 ALT="ActiveState PerlScript" BORDER=0></A><P>
  20. </TD></TR></TABLE>
  21.  
  22. <HR>
  23.  
  24. <H3>ActiveX Data Objects (ADO) Transactions</H3>
  25. This seemingly useless piece of code below is not that useless. It demonstrates the methods used to perform a database session in a transactional state. First, we set the Mode of the Connection object to a read/write mode, then <B>BeginTrans()</B> ignites the transaction. A query is executed and then the transaction is rolled back for fun by calling <B>RollbackTrans()</B>. Lastly, a call to <B>CommitTrans()</B> is made, and it does not do anything because the transaction has been rolled back. Something commonly misunderstood about transactions is that it will not automatically roll back if an error occurs -- you have to do error-checking and then tell the code to roll back on the occurance of an error. No changes made during the transaction are finalized or submitted until <B>CommitTrans()</B> is called, so if you remove the call to RollbackTrans(), you will see that an update occurs provided that you have the database settings configured for a database available on your system.
  26.  
  27. # Create an instance of the Connection object
  28. #
  29. $conn = $Server->CreateObject('ADODB.Connection');
  30.  
  31. # Open a SQL Server database
  32. #
  33. $conn->Open(<<EOF);
  34.     Provider=SQLOLEDB;
  35.     Persist Security Info=False;
  36.     User ID=sa;
  37.     Initial Catalog=MyDatabase
  38. EOF
  39.  
  40. # Make sure we have read/write mode on the database unless you run the script as administrator
  41. #
  42. $conn->{Mode} = 3;
  43.  
  44. # Begin the transaction here
  45. #
  46. $conn->BeginTrans();
  47.  
  48. # Execute a query
  49. #
  50. $conn->Execute("INSERT into Employees VALUES ('Jdns')");
  51.  
  52. # Rollback the query
  53. #
  54. $conn->RollbackTrans();
  55.  
  56. # Transaction was ended with RollbackTrans, so this is not executed
  57. #
  58. $conn->CommitTrans();
  59.  
  60. $conn->Close(); # Close the connection
  61. undef($conn);   # Destroy the object
  62.  
  63. <BR><BR>
  64. <A HREF="index.htm"> Return </A>
  65. </BODY>
  66. </HTML>
  67.