File: sql_transact.xml

package info (click to toggle)
virtuoso-opensource 7.2.5.1%2Bdfsg1-0.3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 285,240 kB
  • sloc: ansic: 641,220; sql: 490,413; xml: 269,570; java: 83,893; javascript: 79,900; cpp: 36,927; sh: 31,653; cs: 25,702; php: 12,690; yacc: 10,227; lex: 7,601; makefile: 7,129; jsp: 4,523; awk: 1,697; perl: 1,013; ruby: 1,003; python: 326
file content (139 lines) | stat: -rw-r--r-- 4,957 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
 -  
 -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 -  project.
 -  
 -  Copyright (C) 1998-2018 OpenLink Software
 -  
 -  This project is free software; you can redistribute it and/or modify it
 -  under the terms of the GNU General Public License as published by the
 -  Free Software Foundation; only version 2 of the License, dated June 1991.
 -  
 -  This program is distributed in the hope that it will be useful, but
 -  WITHOUT ANY WARRANTY; without even the implied warranty of
 -  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 -  General Public License for more details.
 -  
 -  You should have received a copy of the GNU General Public License along
 -  with this program; if not, write to the Free Software Foundation, Inc.,
 -  51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
 -  
 -  
-->
<refentry id="fn_sql_transact">
  <refmeta>
    <refentrytitle>sql_transact</refentrytitle>
    <refmiscinfo>rmt</refmiscinfo>
  </refmeta>
  <refnamediv>
    <refname>sql_transact</refname>
    <refpurpose>get list of available DSNs</refpurpose>
  </refnamediv>
  <refsynopsisdiv>
    <funcsynopsis id="fsyn_sql_transact">
      <funcprototype id="fproto_sql_transact">
        <funcdef><function>sql_transact</function></funcdef>
        <paramdef>in <parameter>dsn_name</parameter> varchar</paramdef>
        <paramdef><optional>in <parameter>rollback</parameter> integer</optional></paramdef>
       </funcprototype>
    </funcsynopsis>
  </refsynopsisdiv>
  <refsect1 id="desc_sql_transact">
    <title>Description</title>
    <para>This procedure can be used to control the commit/rollback behavior 
    of a particular remote data source during a Virtuoso transaction such as in 
    a stored procedure.</para>
    <para>Under normal circumstances Virtuoso will correctly commit or 
    rollback all associated work as expected, however it may be desirable 
    intervene.  When issued without the second parameter a commit will be 
    forced upon the current transactions of the dsn_name above 
    the call to <computeroutput>sql_transact</computeroutput> regardless 
    of overall outcome.  When rollback = 1 is set then a rollback will be forced 
    likewise, hence this will not rollback work on the remote dsn_name prior 
    to <computeroutput>sql_transact</computeroutput>.</para>
  </refsect1>
  <refsect1 id="params_sql_transact">
    <title>Parameters</title>
    <refsect2><title>dsn_name</title>
      <para>The name of the data source being used on the remote.</para></refsect2>
    <refsect2><title>rollback</title>
      <para>Activate the desired behavior.  Set to 1 for rollback, ignore to commit.</para></refsect2>
   </refsect1>
  <refsect1 id="ret_sql_transact"><title>Return Types</title>
    <para>None.</para>
  </refsect1>
<!--  <refsect1 id="errors_sql_transact">
    <title>Errors</title>
    <table>
      <title>Errors signalled by</title>
      <tgroup cols="4">
       <thead>
         <row>
           <entry>SQLState</entry>
           <entry>Error Code</entry>
           <entry>Error Text</entry>
           <entry>Description</entry></row></thead>
	<tbody>
	  <row>
	    <entry><errorcode></errorcode></entry>
	    <entry><errorcode></errorcode></entry>
	    <entry><errorname></errorname></entry>
	    <entry></entry>
	  </row>
	</tbody>
      </tgroup>
    </table>
  </refsect1> -->
  <refsect1 id="examples_sql_transact">
    <title>Examples</title>
    <example id="ex_sql_transact"><title>Control remote rollback/commit behavior</title>
      <para>This code fragment can be used to demonstrate the effects of directly 
      controlling the rollback/commit behavior of remote data sources connected 
      to Virtuoso.</para>
      <programlisting><![CDATA[
create procedure TEST_ROLLBACK ()
{
  commit work;
  insert into mydsn..rb_test values (1);
  sql_transact('mydsn');
  insert into mydsn..rb_test values (2);
  rollback work;
};

create procedure TEST_ROLLBACK ()
{
  commit work;
  insert into mydsn..rb_test values (1);
  sql_transact('mydsn', 1);
  insert into mydsn..rb_test values (2);
  commit work;
};

delete from mydsn..rb_test;

commit work;
TEST_COMMIT();
select MIN (ID) from mydsn..rb_test;  

-- returns 1

delete from mydsn..rb_test;

commit work;
TEST_ROLLBACK();
select MIN (ID) from mydsn..rb_test;

-- returns 2
]]></programlisting>
    </example>
  </refsect1>
  <refsect1 id="seealso_sql_transact">
    <title>See Also</title>
    <para><link linkend="fn_sql_columns"><function>sql_columns</function></link>
    <link linkend="fn_sql_primary_keys"><function>sql_primary_keys</function></link>,
    <link linkend="fn_sql_gettypeinfo"><function>sql_gettypeinfo</function></link>,
    <link linkend="fn_sql_statistics"><function>sql_statistics</function></link>,
    <link linkend="fn_sql_tables"><function>sql_tables</function></link>.</para>
  </refsect1>
</refentry>