roll back

"Maslak, Michael" <[email protected]>
Newsgroups gmane.comp.web.zope.database
Message-ID <[email protected]>
I'm using MS SQL Server 2000 and eGenix mxODBC on W2K3 platform with
Zope 2.7.5.

 

DTML method:

 

...

<dtml-try>

  <dtml-call "insertMAT(mat_id = '18',  mat_name = 'This string is too
long for the attribute',)">

<dtml-except>

  <dtml-raise MAT_SQL_FAILURE> <dtml-var error_value></dtml-raise>

</dtml-try>

...

 

---------

insertMAT  ZSQL method:

 

BEGIN TRANSACTION

insert into mat1 (mat_id)

values (<dtml-sqlvar mat_id type=int>);

 

insert into mat2 (mat_id, mat_name)

values (<dtml-sqlvar mat_id type=int>, <dtml-sqlvar mat_name
type=string>);

 

COMMIT TRANSACTION;

 

 

Renders the error:

Error Message:('22001', 8152, '[Microsoft][ODBC SQL Server Driver][SQL
Server]String or binary data would be truncated.', 4721)

 

The error occurs in the insert into mat2 where mat_name is too long. But
the first insert into mat1 is being written and committed.

 

I understood the entire transaction would be rolled back, either by Zope
as a result of the exception or by MS SQL since the two inserts are
written as a single transaction. Can you please correct my mistake or my
misunderstanding?

 

Thank you,

 

Michael Maslak, Jr.

_______________________________________________
Zope-DB mailing list
[email protected]
http://mail.zope.org/mailman/listinfo/zope-db
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.