.NET
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Connecting to Access DB 2007 on 64bit Win7

5 REPLIES 5
Reply
Message 1 of 6
ViktorCAD
413 Views, 5 Replies

Connecting to Access DB 2007 on 64bit Win7

As posted on theswamp.org, I decided to give it a shot here in despair:

Ok, i'm lost now. I have converted and upgraded an application that we use in house to .net so that it can be run on 64 and 32 bit systems. I have realized that I have to compile on a 64bit os in order for dll to work on 64bit autocad install, am I correct?
Well, this application uses access database heavily, and now I'm running into this "'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine" issue. I've looked around and the only way to get it to run (assuming I do have the driver installed) is to compile as x86. But won't it not work with AutoCad 64bit then? What's the deal?

On xp, and office 2007, 32bit, everything works great. I go to a new box with 64bit win7, office 2007, installed the data driver and still get this issue.

Anyone?

Thanks,
Viktor.
5 REPLIES 5
Message 2 of 6
Anonymous
in reply to: ViktorCAD

{quote}

I have realized that I have to compile on a 64bit os in order for dll to work on
64bit autocad install, am I correct?

{quote}

No. If your project is entirely managed code (e.g., not using any native dlls),
you just set the solution platform to 'Any CPU', and the same assembly will run
on 32 and 64 bit AutoCAD.

But the issue with Access is a known problem, and the only solutions I've seen
are to set your platform to x86, which of course, is not an option when you're
running in 64 bit AutoCAD.

AFAIK, the only real solution is SQL Server Express

--
http://www.caddzone.com

AcadXTabs: MDI Document Tabs for AutoCAD
Supporting AutoCAD 2000 through 2010

http://www.acadxtabs.com

Email: string.Format("{0}@{1}.com", "tonyt", "caddzone");

wrote in message news:6312655@discussion.autodesk.com...
As posted on theswamp.org, I decided to give it a shot here in despair:

Ok, i'm lost now. I have converted and upgraded an application that we use in
house to .net so that it can be run on 64 and 32 bit systems. I have realized
that I have to compile on a 64bit os in order for dll to work on 64bit autocad
install, am I correct?
Well, this application uses access database heavily, and now I'm running into
this "'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local
machine" issue. I've looked around and the only way to get it to run (assuming I
do have the driver installed) is to compile as x86. But won't it not work with
AutoCad 64bit then? What's the deal?

On xp, and office 2007, 32bit, everything works great. I go to a new box with
64bit win7, office 2007, installed the data driver and still get this issue.

Anyone?

Thanks,
Viktor.
Message 3 of 6
ViktorCAD
in reply to: ViktorCAD

Thanks Tony. Two questions if you don't mind:

1. What do you mean by "not running native dlls"? If I'm using autocad's dlls, then I am using native dlls, right? You're talking about the applications that do not rely on any of AutoCad's dlls?

2. I have considered SQLite and SQLexpress for this but decided to cut the database out alltogether and just use xml files for storing that data, because I'm not using much of the database functionality anyways, and loading XML into dataset then performing linq query to get my results. But nevertheless, I have a question regarding sqlexpress, for this application I need this data to be copied down to the users local computer from a network, sqlexpress can be moved around, right? As long as the log moves along with it? Does it have to be attached the sql server? Or better yet, does the client have to have sql server installed on their machine?

Thanks,
Viktor.
Message 4 of 6
Anonymous
in reply to: ViktorCAD

By "not running native dlls" I mean that your project does not call native DLLS
that must have different builds on different platforms.

AutoCAD's dlls are mixed-mode assemblies but you are not calling the native code
in them directly (unless you're using P/Invoke), you're calling them through
managed wrappers provided by those DLLs.

I can't tell you much about SQLExpress, other than its runtime does have to be
installed on the client system.

--
http://www.caddzone.com

AcadXTabs: MDI Document Tabs for AutoCAD
Supporting AutoCAD 2000 through 2010

http://www.acadxtabs.com

Email: string.Format("{0}@{1}.com", "tonyt", "caddzone");

wrote in message news:6313357@discussion.autodesk.com...
Thanks Tony. Two questions if you don't mind:

1. What do you mean by "not running native dlls"? If I'm using autocad's dlls,
then I am using native dlls, right? You're talking about the applications that
do not rely on any of AutoCad's dlls?

2. I have considered SQLite and SQLexpress for this but decided to cut the
database out alltogether and just use xml files for storing that data, because
I'm not using much of the database functionality anyways, and loading XML into
dataset then performing linq query to get my results. But nevertheless, I have a
question regarding sqlexpress, for this application I need this data to be
copied down to the users local computer from a network, sqlexpress can be moved
around, right? As long as the log moves along with it? Does it have to be
attached the sql server? Or better yet, does the client have to have sql server
installed on their machine?

Thanks,
Viktor.
Message 5 of 6
norman.yuan
in reply to: ViktorCAD

Regarding your question 2:

SQL Server Express IS Sql Server, which you can install it as central data store, or locally on each computer, if your app requires it. But it is server based DB system, which you cannot easily move it around freely as you do with *.mdb file. of course there is little point to have it on every computer if the computers are all in the office and connected to LAN.

Not sure what kind of data access situation with your app is, so, cannot talk more on SQL Server/Express. However, as you said, if your data is already in XML format, why you have to load it into a database for querying? Is the volume of data huge? Or the queries are complicated? Can't you use LinqToXml or load data into custom object(s) and then use LinkToObject to do your queries? Unless you need also update the data back frequently to the huge pile of data, I do not see why bothering to get Xml data into a DB each time your app runs. If your app can only deal data from database, can't you do one time data transfer from XML to DB outside of your app?

Norman Yuan

Drive CAD With Code

EESignature

Message 6 of 6
ViktorCAD
in reply to: ViktorCAD

Thanks for sqlexpress info. Let me correct myself, originally I was storing data in access, then I would pull all needed data out of access into a dataset, then use the dataset through out my program. Now that I am not using access, I am storing data in XML files, and I just pull the data out of xml and into a dataset, not database. Yes, I could query XML directly, but that would mean that I would have to change my code quiet a bit because I was using a dataset before. This way, the change is minimal, instead of loading from access I load from xml files.

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Autodesk DevCon in Munich May 28-29th


Autodesk Design & Make Report

”Boost