<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Sep 10, 2010, at 5:17 AM, Pantelis Theodosiou wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">I have a simple INSERT INTO statement sent to SQL-Server using pymssql module.<br><br>I use the runOperation method to send the query and I get this strange error. The data goes through OK and is written in the database but SQL-Server tries to rollback.<br>
<br>Perhaps this is a pymssql problem. In the <br><a href="http://code.google.com/p/pymssql/wiki/PymssqlExamples">http://code.google.com/p/pymssql/wiki/PymssqlExamples</a> <br>page, they state:<br><br><pre class="prettyprint"><span class="kwd">import</span><span class="pln"> pymssql<br>conn </span><span class="pun">=</span><span class="pln"> pymssql</span><span class="pun">.</span><span class="pln">connect</span><span class="pun">(</span><span class="pln">host</span><span class="pun">=</span><span class="str">'SQL01'</span><span class="pun">,</span><span class="pln"> user</span><span class="pun">=</span><span class="str">'user'</span><span class="pun">,</span><span class="pln"> password</span><span class="pun">=</span><span class="str">'password'</span><span class="pun">,</span><span class="pln"> database</span><span class="pun">=</span><span class="str">'mydatabase'</span><span class="pun">)</span><span class="pln"><br>
cur </span><span class="pun">=</span><span class="pln"> conn</span><span class="pun">.</span><span class="pln">cursor</span><span class="pun">()</span><span class="pln"><br>cur</span><span class="pun">.</span><span class="pln">execute</span><span class="pun">(</span><span class="str">'CREATE TABLE persons(id INT, name VARCHAR(100))'</span><span class="pun">)</span><span class="pln"><br>
cur</span><span class="pun">.</span><span class="pln">executemany</span><span class="pun">(</span><span class="str">"INSERT INTO persons VALUES(%d, %s)"</span><span class="pun">,</span><span class="pln"> </span><span class="pun">\</span><span class="pln"><br>
&nbsp; &nbsp; </span><span class="pun">[</span><span class="pln"> </span><span class="pun">(</span><span class="lit">1</span><span class="pun">,</span><span class="pln"> </span><span class="str">'John Doe'</span><span class="pun">),</span><span class="pln"> </span><span class="pun">(</span><span class="lit">2</span><span class="pun">,</span><span class="pln"> </span><span class="str">'Jane Doe'</span><span class="pun">)</span><span class="pln"> </span><span class="pun">])</span><span class="pln"><br>
conn</span><span class="pun">.</span><span class="pln">commit</span><span class="pun">()</span><span class="pln"> &nbsp;</span><span class="com"># you must call commit() to persist your data if you don't set autocommit to True</span><span class="pln"><br>
</span></pre><br>But how can I use the con.commit method with runOperation and runQuery that I use in my application?<br><br>thank you,<br><br>Pandelis Theodosiou<br></blockquote><div><br></div><div><br></div><div>I have no experience with MS SQL, only with PostgreSQL via psycopg2, but the idea is:</div><div><br></div><div>you want to execute many statements, probably in a blocking fashion: runInteraction()</div><div>you want to execute just one statement: runQuery()/runOperation()</div><div><br></div><div>AFAIK the latter one will do a commit for you if it is needed.</div><div><br></div><div>Anyway, for PostgreSQL I can specify isolation level I need.</div></div></body></html>