Difference between revisions of "SQLCOMMIT()"

From Lianjapedia
Jump to: navigation, search
Line 9: Line 9:
  
 
==Description==
 
==Description==
The SQLCOMMIT() function is used to commit a transaction.  The SQLCOMMIT() function is only required when Manual Transactions are in effect.  The Transactions setting, set using SQLSETPROP(), can be either Automatic (1) or Manual (2).  Manual Transactions can be can be rolled back using the SQLROLLBACK() function.
+
The SQLCOMMIT() function is used to commit a transaction.  The SQLCOMMIT() function is only required when SQLTRANSACTION() is in effect on the connection.
  
 
The SQLCOMMIT() function operates on the data source specified by <nStatementHandle>.
 
The SQLCOMMIT() function operates on the data source specified by <nStatementHandle>.
  
{| class="wikitable"
+
{| class="wikitable" width=100%
!Keywords||Description
+
!width=30%|Keywords||width=70%|Description
 
|-
 
|-
 
|nStatementHandle||The workarea in which the gateway data source is open
 
|nStatementHandle||The workarea in which the gateway data source is open
|-
 
|}
 
 
====Return values:====
 
 
{| class="wikitable"
 
!Return Value||Description
 
|-
 
|1||SQL statement was committed successfully
 
|-
 
|&ndash;1||Error occurred
 
 
|-
 
|-
 
|}
 
|}
Line 33: Line 22:
 
==Example==
 
==Example==
 
<code lang="recital">
 
<code lang="recital">
nStatHand=SQLSTRINGCONNECT("rec@rec1:user1/pass1-southwind.tcpip",.T.)
+
nStatHand=sqlconnect("awhr")
 
if nStatHand < 1
 
if nStatHand < 1
    messagebox("Cannot make connection", 16, "SQL Connect Error")
+
messagebox("Cannot make connection", 16, "SQL Connect Error")
 
else
 
else
    messagebox("Connection made", 48, "SQL Connect Message")
+
messagebox("Connection made", 48, "SQL Connect Message")
    nSetEnd = SQLSETPROP(nStatHand,"Transactions",2)
+
sqltransaction(nStatHand)
    if nSetEnd = 1
+
sqlexec(nStatHand,"insert into dbo.doc1 (account_no, lastname, balance) values ('00889','Brown', 12000)")
        messagebox("Manual Transactions enabled",0,"Transaction")
+
if messagebox("Commit Insert?",36,"Transaction") = 6
    else
+
sqlcommit(nStatHand)
        if messagebox("Unable to enable Manual Transactions, continue?",36,"Transaction") = 6
+
else
            SQLDISCONNECT(nStatHand)
+
sqlrollback(nStatHand)
            return
+
endif
        endif
+
sqlexec(nStatHand,"select * from dbo.doc1")
    endif
+
list
    nRET=SQLEXEC(nStatHand,"INSERT INTO example (ACCOUNT_NO, TITLE, LAST_NAME, FIRST_NAME, INITIAL, STREET, CITY, STATE, ZIP, LIMIT, START_DATE) VALUES ('00200','Mr','Doe','John','L','1 High Street','Beverly','MA','01916', 12000, {05/12/2003})")
+
sqldisconnect(nStatHand)
    if SQLGETPROP(nStatHand, "Transactions") = 2
+
        if messagebox("Commit Insert?",36,"Transaction") = 6
+
            messagebox("SQLCOMMIT() returned " + etos(SQLCOMMIT(nStatHand)),0,"Transaction")
+
        else
+
            messagebox("SQLROLLBACK() returned " + etos(SQLROLLBACK(nStatHand)),0,"Transaction")
+
        endif
+
    endif
+
    nSetEnd = SQLSETPROP(nStatHand, "Transactions",1)
+
    if nSetEnd = 1
+
        messagebox("Automatic Transactions enabled",0,"Transaction")
+
    else
+
        messagebox("Unable to enable Automatic Transactions.",0,"Transaction")
+
    endif
+
 
endif
 
endif
SQLDISCONNECT(nStatHand)
 
 
</code>
 
</code>
  

Revision as of 11:09, 7 January 2013

Purpose

Commit a transaction

Syntax

SQLCOMMIT(<nStatementHandle>)

See Also

SQLCANCEL(), SQLCOLUMNS(), SQLCONNECT(), SQLDISCONNECT(), SQLERROR(), SQLEXEC(), SQLGETPROP() SQLMORERESULTS(), SQLPREPARE(), SQLROLLBACK(), SQLSETPROP(), SQLSTRINGCONNECT(), SQLTABLES()

Description

The SQLCOMMIT() function is used to commit a transaction. The SQLCOMMIT() function is only required when SQLTRANSACTION() is in effect on the connection.

The SQLCOMMIT() function operates on the data source specified by <nStatementHandle>.

Keywords Description
nStatementHandle The workarea in which the gateway data source is open

Example

nStatHand=sqlconnect("awhr")
if nStatHand < 1
	messagebox("Cannot make connection", 16, "SQL Connect Error")
else
	messagebox("Connection made", 48, "SQL Connect Message")
	sqltransaction(nStatHand)
	sqlexec(nStatHand,"insert into dbo.doc1 (account_no, lastname, balance) values ('00889','Brown', 12000)")
	if messagebox("Commit Insert?",36,"Transaction") = 6
		sqlcommit(nStatHand)
	else
		sqlrollback(nStatHand)
	endif
	sqlexec(nStatHand,"select * from dbo.doc1")
	list
	sqldisconnect(nStatHand)
endif