Sybase ASE 15 support
Description
Environment
Attachments
Activity

Fabio Maulo July 30, 2011 at 2:11 PM
Closed after final release of NH3.2.0GA

Julian Maughan April 15, 2011 at 8:35 PM
Not sure if you saw this, but in the code I commented that temp tables can be created outside a transaction by changing the 'ddl in tran' setting to true on the tempdb database. However, there are some fairly dire warnings about doing so, such as: "WARNING! Data definition language (DDL) commands hold locks on system tables such as sysobjects. Avoid using them inside transactions; if you must use them, keep the transactions short. Using any DDL commands on tempdb within transactions may cause your system to grind to a halt. Always leave ddl in tran set to false in tempdb."
Changing the setting did improve the number of test passes considerably. It doesn't make sense to me that temp tables would be handled like other DDL statements.

JimJ April 13, 2011 at 6:23 AM
You are correct - ASE 15 does choke on temp tables within transactions. Thanks for your work on this.

Julian Maughan April 10, 2011 at 9:23 AM
I've committed a driver and dialect for Sybase ASE 15 (r5649). I spent quite a bit of time messing about with it, and seeing how many tests would pass. One point I'm confused about is that the Hibernate version, and the attached, have support for temporary tables enabled. I found that ASE does not allow temporary tables to be created inside a transaction. This causes many test failures in NH, so I have disabled it in our dialect. See the code for more details.
Details
Details
Assignee
Reporter

The 3.0.0 release banished Sybase ASE users for reasons unknown to me. I understand the criticism of the 2.x and 3.0.0 release candidate implementations of the Sybase ASE dialect (yes they were bad), but at least they let ASE users use NHibernate. Better to have basic but functional support than no support at all. This is especially important for ASE users considering the lack of Entity support by Sybase for ASE. Removing ASE support forced NHibernate users to stay with the 2.12 release or pay for an Entity aware provider. The comments I read regarding the removal of ASE support - specifically regarding the merging of the ASE and ASA dialects - also make no sense to me. ASA and ASE are two different products with different keywords, SQL syntax, functions, and drivers. Their dialects cannot be merged! Same with the supposed support from the MS SQL 2000 dialect - this dialect uses MS keywords like 'TOP' that ASE does not support.
Attached is a port of the Sybase ASE Dialect from the Java Hibernate project along with support for the ADO.NET driver provided by Sybase. I am using it in a project currently and it at least appears to work. I am only using the most basic of NHibernate features though so additional testing would be nice. But it provides a start.
Tested against Sybase 15.0.3.0 using .NET 4.0 runtime and Sybase.AdoNet2.AseClient.dll driver (version 1.15.305.0).