I did an install of SQL Anywhere 12 on a Windows 7 box (full install with all components - both 32 bit and 64 bit). No errors and everything works fine in the 64 bit arena. However I have a 32 bit database that I need to work with and I can not set it up in the ODBC administrator (32 bit one).

The problem has boiled down to the fact that the 32 bit driver is not installed (regedit did not show it as being there).

The file is there in the ...SQL Anywhere 12bin32 directory along with dbcon12.dll.

I tried doing regsvr32 dbodbc12.dll and got the error "... module ... dbodbc12.dll was loaded but the call to the DLLRegisterServer failed with error code 0x8000ffff."

I did sfc /verifyonly and no errors were reported.

I am stuck and would appreciate any advice.

Thanks.

asked 01 Feb '13, 15:02

Stockport's gravatar image

Stockport
16224
accept rate: 0%

You will need to start the command prompt as an administrator to register the driver. I believe I've seen an obscure error message like the one mentioned in your post when using a non-elevated command prompt.

(01 Feb '13, 16:17) Tyson Lewis
Replies hidden

Thanks Tyson. Unfortunately, I had tried that as well.

(01 Feb '13, 17:00) Stockport

Have you looked at the required files page: http://dcx/index.html#1201/en/dbprogramming/odbc-driver-deploy.html .

You'll need the files there, and they'll need to have matching build numbers.

If you're installing SQL Anywhere 12 GA for the first time (and not an EBF on top of it), I can't imagine any of those failing to install, but it may be worth checking.

(01 Feb '13, 18:12) Tyson Lewis
Replies hidden

That link didn't work, but I used this one:

http://dcx.sybase.com/1201/en/dbprogramming/odbc-driver-deploy.html

and all of the required files are there. Good idea though. Thanks. I am beginning to wonder if I have a problem in my registry. My next step is to install on a fresh similar machine.

(01 Feb '13, 19:14) Stockport

I did an install on another PC of identical hardware specs and the same version of Windows 7 (but with fewer other programs installed) and it went just fine.

Next experiment I guess will be to unload some of those "other programs" on the problem PC and see if one of them is causing the problem. I tend to doubt that though and am still suspicious that I have a registry problem.

(01 Feb '13, 23:23) Stockport

Well I am stumped. I uninstalled several programs which might have been creating a conflict (Powerbuilder and Crystal reports) and even ran a registry cleaner (which I am usually reluctant to do - used Wise Registry Cleaner Portable 7.62.494) and of course cold booting between each experiment before reinstalling SQL Anywhere 12. Same problem every time.

I am going to stew on it for a day or two and then if nothing inspires me I guess I'll rebuild the box from scratch. I really hate not getting to the root cause even more than I hate all the work to rebuild.

Thanks to all who read the thread and pondered on the problem.

(02 Feb '13, 06:09) Stockport
Replies hidden

Just to have it asked (though I guess you will already have tried that): When trying to register the 32-bit ODBC driver, have you used the 32-bit regsvr program, i.e. run "c:\windows\syswow64\regsvr32 dbodbc12.dll"?

A further helpful 32-bit/64-bit FAQ may be found here.

(02 Feb '13, 07:16) Volker Barth

Thanks Volker. Yes I have tried that (from the c:program filessql anywhere 12bin32 directory) and get the same 0x8000ffff error message. Thanks for the FAQ reference. I will read that to see if it triggers an idea.

(02 Feb '13, 08:43) Stockport

Thanks JB. Same results (regsvr32 error - The module "c:program filessql anywhere 12bin32dbodbc12.dll" was loaded but the call to DLLRegisterServer failed with error code 0x8000ffff.") when executing this from the command prompt as administrator: C:WindowsSysWOW64>regsvr32 "c:program filessql anywhere 12bin32dbodbc12.dll"

The FAQ suggested by Volker Barth was very helpful in getting me to better understand the situation. It seems to me that I am at one of those awkward intersections of the 32 and 64 bit worlds where vendors/products are trying to support both and I have confounded the situation by having multiple database products using both 32 and 64 bit ODBC drivers on the same box.

I am going to begin rebuilding the box this morning. For those who have a similar problem down the road and wind up reading this thread, the lesson for me is this: if you are required to run multiple 32 and 64 bit database products from multiple vendors, it is probably a very good idea to run them on virtual machines where ever possible.

Thanks to all for your help.

(03 Feb '13, 07:40) Stockport

Well, usually it should work to have and use both 64-bit and 32-bit drivers of SQL Anywhere on the same box, so your current personal situation is "awkward", obviously, but should not meet the common experience, I hope...


FWIW, the SQL Anywhere "databases" themselves are bitness-agnostic, i.e. there's no "32-bit database", the same database files can be run on all supported platforms and bitnesses. - Yes, I'm fully aware that that's not your point:)

(03 Feb '13, 11:56) Volker Barth
2

The bitness of the regsvr32 executable itself doesn't really matter -- if it is a different bitness than the DLL that is to be registered, then it invokes the other bitness of itself.

However, I have found that it is sometimes necessary to give an absolute path to the DLL rather than just the filename even if the DLL you are trying to register is in the current directory. I think regsvr32 might search to find the DLL that matches its own bitness when an absolute path is not provided. Always use an absolute path: 'c:\program files\sql anywhere 12\bin32\dbodbc12.dll"

Also, it might be worth running procmon (available for free from Microsoft) to watch what regsvr32 and dbodbc32.dll are doing. For example, you might be able to observe an error encountered when updating the registry.

(03 Feb '13, 18:10) John Smirnios

Thanks Volker and John for your most recent comments. Both very helpful. I have rebuilt the box and all is working as it should. One point I should clarify for others who follow who have a similar problem. I was using this box for multiple databases (both 32 bit and 64 bit) from multiple sources - MySQL, Sysbase SQL Anywhere, Microsoft SQL Server as well as an old version of PowerBuilder with its old SQL Anywhere drivers. All in all, not the best idea, hence my comment above about using virtual machines more in the future for some of this.

(05 Feb '13, 00:11) Stockport

Glad you got it working now". - I second your "keep it simple" recommendation, although I would guess that typical "developer boxes" will tend to have several DMBS's installed in various versions (at least that's my experience). Yes, it's sometimes easy to mess that all up:)

(05 Feb '13, 03:27) Volker Barth

Thanks Jeff. I had tried that and this was not the case for my situation.

(06 Feb '13, 12:21) Stockport

Though it is now working, I have a new problem almost as weird as this one. I will post it on a new thread to help keep the comments straight for anyone who comes along later. I mention it here in the event the two problems eventually are shown to be related.

The problem new problem will have the title "32 bit ODBC DSN definition works fine but then fails after a restart of the PC".

(06 Feb '13, 12:24) Stockport
More comments hidden
showing 5 of 15 show all flat view

We have heard reports from other customers that some third-party ODBC drivers can obscure or conflict with more "recently" installed ODBC drivers in the ODBC registry (by either corrupting the index or by simply being misconfigured).

Exporting the ODBCINST.INI and ODBC.INI registry keys to text files can help determine if this type of registry corruption exists (If I recall correctly, there was an extra character in the output denoting where the corruption is, like "@").

There is a support article from DataDirect about the improper registry configuration behaviour with their ODBC drivers.

permanent link

answered 05 Feb '13, 08:59

Jeff%20Albion's gravatar image

Jeff Albion
10.8k171175
accept rate: 25%

edited 05 Feb '13, 09:02

Try running the 32-bit regsvr32 from windows\syswow64.

permanent link

answered 02 Feb '13, 21:09

JBSchueler's gravatar image

JBSchueler
3.3k41564
accept rate: 19%

edited 02 Feb '13, 21:09

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:

×145
×21
×15

question asked: 01 Feb '13, 15:02

question was seen: 10,221 times

last updated: 06 Feb '13, 12:24