Sybase ASE driver re: 5.2

Posts   
 
    
Jamanga
User
Posts: 93
Joined: 21-Jul-2006
# Posted on: 07-Jun-2017 07:01:04   

Hi team

I've just upgraded to 5.2 and got the following message when attempting to open my 4.2 project using the new version:

The XML contains a reference to a driver with ID: 'A3076322-977C-4e28-BFF4-F25ED096D1DB' which isn't loaded, likely due to a missing ADO.NET provider. Line 2515, Position 6

Is there supposed to be a \drivers\SybaseASE directory post install?

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39590
Joined: 17-Aug-2003
# Posted on: 07-Jun-2017 08:54:20   

No, sybase databases are no longer supported since v5. https://www.llblgen.com/Documentation/5.2/Designer/BreakingChanges.htm#designer-1

We've open sourced them here: https://github.com/SolutionsDesign/LLBLGenProSybaseASE

I see the readme there has an error, we no longer ship the templates for these databases with the designer. This isn't that much of a problem though, you can copy the ASE v4.2 templates over to v5.2 as the amount is very small and they're mainly just tiny wrappers.

Frans Bouma | Lead developer LLBLGen Pro
Otis avatar
Otis
LLBLGen Pro Team
Posts: 39590
Joined: 17-Aug-2003
# Posted on: 07-Jun-2017 10:52:24   

I've updated the repository and added the templates, adjusted them where needed. You need to adjust them to the version of llblgen you're using (which means changing 1 value in 1 template). It's in the readme of the repository. Hope this helps simple_smile

Frans Bouma | Lead developer LLBLGen Pro
Jamanga
User
Posts: 93
Joined: 21-Jul-2006
# Posted on: 08-Jun-2017 02:52:47   

Hi Otis

Yep that would explain it! I've adjusted the code to compile for 5.2.1 - and its working within the designer now, so thanks for that.

However within the SybaseAseSpecificCreator.cs there is a method which prefixes parameters as per below, but this can no longer be overidden in the base class, and there is no CreateParameterName(string p) method either.

        /// <summary>
        /// Creates a name usable for a Parameter, based on "p" and a unique marker.
        /// </summary>
        /// <returns>Usable parameter name.</returns>
        protected override string CreateParameterName()
        {
            return this.CreateParameterName("@");
        }

Removing this method entirely means the parameters do not get prefixed with the "@" sign, hence the queries don't work in Sybase. I'll download the full source code to see if this gets set another way now, any tips appreciated!

Jamanga
User
Posts: 93
Joined: 21-Jul-2006
# Posted on: 08-Jun-2017 03:04:26   

Ah got it - working now

        protected override string ParameterPrefix {
            get { return "@"; }
        }

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39590
Joined: 17-Aug-2003
# Posted on: 08-Jun-2017 10:12:25   

aha, thanks for pointing that out. That's indeed a refactoring that was needed for the plain sql API. We'll update the source so it's compilable against v5.2. simple_smile

Frans Bouma | Lead developer LLBLGen Pro