Please be aware that the content in SAP SQL Anywhere Forum will be migrated to the SAP Community in June and this forum will be retired.

My application uses the SA ADO .NET data provider. I had upgraded my application to use SQ 12.0.1 EBF 3840 earlier in the week, but I had to roll it back to EBF 3817 on Friday. I've been getting the following error when my program starts up:

System.EntryPointNotFoundException: Unable to find an entry point named 'AsaConnection_CloseDataReaders' in DLL 'dbdata12.dll'.

I've done a search and I found this documentation page about dbdata12.dll. I've done a search of the C: drive on my machine and I can't find dbdata12.dll anywhere on it. Apparently, the program isn't unpacking it, either.

How do I fix this problem?

P.S. My program uses the .Net 4.0 framework and Entity Framework 4. Consequently, I'm using iAnywhere.Data.SQLAnywhere.V4.0.dll. One of the DLLs in the program also uses the ASP.NET Membership and Role providers in iAnywhere.Web.Security.dll, which is compiled using the .Net 2.0 framework. That means that the DLL has to include iAnywhere.Data.SQLAnywhere.dll. Could this be some kind of a conflict issue with the two different versions of the iAnywhere.Data.SQLAnywhere DLL?

asked 09 Feb '13, 10:02

TonyV's gravatar image

TonyV
1.2k333967
accept rate: 75%

edited 11 Feb '13, 08:59

You could have a look at the MSI installer log, cf. my answer to this FAQ. It deals with JAR files, however, it might also hive a clues as to where install information may be traced...

(11 Feb '13, 07:13) Volker Barth

With the help of another developer here, I’ve resolved this.

The problem is that the uninstaller does not remove all 3840 DLLs from the GAC. Specifically, I found copies of iAnywhere.Data.SQLAnywhere.V4.0.dll and policy.12.0.iAnywhere.Data.SQLAnywhere.V4.0.dll and policy.12.0.iAnywhere.Data.SQLAnywhere.V4.5.dll in the C:WindowsMicrosoft.NETassemblyGAC_MSIL folders for EBF 3840, even after I had uninstalled SQL Anywhere from my machine twice.

Once I deleted those DLLs, the problem stopped.

permanent link

answered 11 Feb '13, 13:39

TonyV's gravatar image

TonyV
1.2k333967
accept rate: 75%

The provider unpacks the unmanaged code (dbdata12.dll) when you run your .NET application.

The SQL Anywhere uninstaller will not clear anything from the GAC because it does not know if you have applications built against a specific version of the provider. To arbitrarily remove versions of the provider could break your .NET applications.

You can use SetupVSPackage to uninstall the current 12.0.1 .NET provider build (/uninstall) or all of them (/uninstallall).

See http://dcx.sybase.com/index.html#1201/en/dbprogramming/deploying-dotnet-uninstall.html*d5e51482

permanent link

answered 11 Feb '13, 13:58

JBSchueler's gravatar image

JBSchueler
3.3k41564
accept rate: 19%

1

@JBSchueler: OK, I see, what I forgot to do was to run SetupVSPackage -U before uninstalling. Perhaps the installer should ask the user if they want to run this step during the uninstall? I mean, if you don't have a server running on your box, what good is having the DLLs in the GAC going to do you?

(11 Feb '13, 14:26) TonyV

I suggest reinstalling SA from scratch. Most likely your attempt to "downgrade" SA resulted in missing files or/and version mismatch between components.

permanent link

answered 11 Feb '13, 00:59

Dmitri's gravatar image

Dmitri
1.6k41133
accept rate: 11%

That's what I did. That is, I unintalled SA & I reinstalled it.

The dbdata12.dll file is included as a resource in the iAnywhere.Data.SQLAnywhere.dll file. It's also in the iAnywhere.Data.SQLAnywhere.v4.0.dll file. The file is supposed to be automatically extracted by the DLL.

I'm going to add more information to my post.

(11 Feb '13, 08:55) TonyV
Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Question tags:

×39

question asked: 09 Feb '13, 10:02

question was seen: 5,870 times

last updated: 11 Feb '13, 14:29