64 bit MDAC needed

  • Thread starter Thread starter Rinze
  • Start date Start date
R

Rinze

Hi all,

I'm in desperate need for 64bit MDAC components. I need to access an
(Access)MDB file from 64bit program.
Everywhere I look it tells me to compile it as a 32bit program because MS
doesn't provide 64bit MDAC components. But these messages are usually
pretty old. Compiling as 32bit only is not an option as I'm writing a
plugin for AutoCAD and 64bit AutoCAD doesn't accept 32bit plugins.

I've looked at using SQLExpress but that doesn't allow me to mount a db
from a network drive, it can only mount local files. I'm not going to tell
the customer to buy SQLServer @ thousands of dollars just to use this plugin.

I'm about to point my arrows at MySQL unless a 64bit version of MDAC is
available. So does it exist and if so, where do I download it.

Rinze van Huizen
 
Rinze said:
Hi all,

I'm in desperate need for 64bit MDAC components. I need to access an
(Access)MDB file from 64bit program.
Everywhere I look it tells me to compile it as a 32bit program because MS
doesn't provide 64bit MDAC components. But these messages are usually
pretty old. Compiling as 32bit only is not an option as I'm writing a
plugin for AutoCAD and 64bit AutoCAD doesn't accept 32bit plugins.

I've looked at using SQLExpress but that doesn't allow me to mount a db
from a network drive, it can only mount local files. I'm not going to tell
the customer to buy SQLServer @ thousands of dollars just to use this
plugin.

I'm about to point my arrows at MySQL unless a 64bit version of MDAC is
available. So does it exist and if so, where do I download it.

Rinze van Huizen

A quick Google Groups search yielded numerous references to MDAC 2.8. I
suggest you do the search and follow the links. Good luck.
 
It is not MDAC issue. MDB uses Jet Engine, which is 32 bit, and will not
have 64 bit version, for sure. You may consider to upgrade your *.mdb
database to *.accdb (Access2007), then use MS Access database engine (free
download, so you do not need Access2007 installed to access data in it, just
as access data in *.mdb).

As for MySQL, it is the same as SQL Server (Express), as server database. If
you can use MySQL, I do not see why you cannot use SQL Server Express (you
do know it is free, don't you?). You only need to buy it if you have more
than 4G data for a single database, which I assume you do not, since you
want to use *.mdb (2G is its limit).

If you really want a file based database, another option would be SQL Server
CE, which is also free, and is aimed for local install and local use, but
still can be shared by multiple users.
 
Hello Rinze


Access is a dead end in your situation , the only good substitute would be
to use SQL server CE wich is file based and is XCOPY deployable it has all
the good stuff that ACCESS had from a developers perspective


HTH

Michel Posseth
 
PvdG42 said:
A quick Google Groups search yielded numerous references to MDAC 2.8. I
suggest you do the search and follow the links. Good luck.

I didn't see any mention that MDAC 2.8 was 64bit, but I will look into it.
We have a Vista64 here and it's all up to date but it still doesn't open
it. Seems the Jet Engine is the culprit. I thought the Jet engine was
included in the MDAC, but apparently they don't do that anymore. And the
Jet engine is 32bit only. I guess it's bye bye mdb.

Rinze
 
Norman said:
It is not MDAC issue. MDB uses Jet Engine, which is 32 bit, and will not
have 64 bit version, for sure. You may consider to upgrade your *.mdb
database to *.accdb (Access2007), then use MS Access database engine
(free download, so you do not need Access2007 installed to access data
in it, just as access data in *.mdb).

As for MySQL, it is the same as SQL Server (Express), as server
database. If you can use MySQL, I do not see why you cannot use SQL
Server Express (you do know it is free, don't you?). You only need to
buy it if you have more than 4G data for a single database, which I
assume you do not, since you want to use *.mdb (2G is its limit).

If you really want a file based database, another option would be SQL
Server CE, which is also free, and is aimed for local install and local
use, but still can be shared by multiple users.

Thanks, I will look into Access2007, but since I don't have that installed
here (just 2003) I think that's going to be a problem.

As fas as SQLExpress is concerned. Yes I know that it's free. That's why it
was the 1st thing I tried when I ran into this problem. This created a new
problem. SQLExpress can't mount files (*.mdf) located on a network share
(UNC or mapped drives). You can only mount files from local drives. MySQL
is more like SQLServer than SQLExpress.

I've also looked into SQL Server Compact Edition. But either I'm missing
something or it's too "compact" for my needs. I managed to mount the DB for
it in the SQL Server management studio and I was able to create tables. But
that's where it ended. I couldn't open the table to edit the data. I
couldn't define relations between the tables. I updated the CE tools for
VS2005 and there I could enter data into the tables, but still I could not
define relations.

Rinze
 
Michel said:
Hello Rinze


Access is a dead end in your situation , the only good substitute would
be to use SQL server CE wich is file based and is XCOPY deployable it
has all the good stuff that ACCESS had from a developers perspective


HTH

Michel Posseth

I kinda figured it was a dead end :( In Access I can define relations that
enforce referential integrity (i.e. I delete/update a record from one table
and it deletes/updates the related records in another table automatically).
That seems to be missing from SQLServerCE. I haven't found a way to define
relations (if there is, please let me know). So in that sense it doesn't
have all the good stuff Access had/has.

Rinze
 
See comment inline.

Rinze said:
Thanks, I will look into Access2007, but since I don't have that installed
here (just 2003) I think that's going to be a problem.

As fas as SQLExpress is concerned. Yes I know that it's free. That's why
it was the 1st thing I tried when I ran into this problem. This created a
new problem. SQLExpress can't mount files (*.mdf) located on a network
share (UNC or mapped drives). You can only mount files from local drives.
MySQL is more like SQLServer than SQLExpress.

There is not much different between SQL Server, SQL Server Express,
regarding your need. You seems mistakenly thinking that somehow full SQL
Server allows you place data file on a network drive, hence the "@ thousands
of dollar...".

If your app is only meant for single user to use your app, why you have to
place SQL Server's database file (*.mdf) on network share? If it is meant to
be shared by multiple users, the SQL Server, or SQL Server Express, or MySQL
can be installed on any networked computer. I really do not understand why
the data file of a SQL Server (Express) has to be on a mapped network drive
in your case.
 
If you really like ACCCESS and need to use it on a 64 bit system the only
other solution is to built your project strict form 32 bit in that case your
app will run on a 64 bit system in the WOW layer
and can access the 32 bit drivers if they are installed on the system . I
have done this in the past and it worked flawless

The only other solution is to use a database with a 64 bit driver SQL server
, SQL server CE , or another nice free alternative Firebird DB wich has a
free full featured DB and a SQL CE clone ( although the Firebird version was
there first ) the firebird XCOPY version however is not protectable on file
level and SQL CE is ( password protect the DB to protect contents from
uniauthorized access )
But for the rest the firebird version is also a great product with all sorts
of features http://www.firebirdsql.org/


For the rest i have never found a good free alternative, for the security
feature i choose SQL CE as this was verry important to me at that time


HTH


Michel
 
Michel said:
If you really like ACCCESS and need to use it on a 64 bit system the
only other solution is to built your project strict form 32 bit in that
case your app will run on a 64 bit system in the WOW layer
and can access the 32 bit drivers if they are installed on the system .
I have done this in the past and it worked flawless

It's not that I'm married to ACCESS. But for this application it was simply
the easiest... Until I tried a 64 bit version. 32bit only is not an option
because I'm making a plugin for AutoCAD and you can't load a 32bit dll into
64bit AutoCAD. Believe me, I tried it.
The only other solution is to use a database with a 64 bit driver SQL
server , SQL server CE , or another nice free alternative Firebird DB
wich has a free full featured DB and a SQL CE clone ( although the
Firebird version was there first ) the firebird XCOPY version however is
not protectable on file level and SQL CE is ( password protect the DB
to protect contents from uniauthorized access )
But for the rest the firebird version is also a great product with all
sorts of features http://www.firebirdsql.org/


For the rest i have never found a good free alternative, for the
security feature i choose SQL CE as this was verry important to me at
that time

Hmm Firebird, didn't think of that I will check it out, thanks.

Rinze
 
Norman said:
There is not much different between SQL Server, SQL Server Express,
regarding your need. You seems mistakenly thinking that somehow full SQL
Server allows you place data file on a network drive, hence the "@ thousands
of dollar...".

If your app is only meant for single user to use your app, why you have to
place SQL Server's database file (*.mdf) on network share? If it is meant to
be shared by multiple users, the SQL Server, or SQL Server Express, or MySQL
can be installed on any networked computer. I really do not understand why
the data file of a SQL Server (Express) has to be on a mapped network drive
in your case.

The plugin we're making will come in 2 flavors. A single user version. In
which case SQLExpress would do everything I need. And a network version. In
which case the data needs to be available to everyone on the network.
That's why I needed my file to be on the network.

I did some further checking. I was under the impression that SQLExpress
didn't accept remote connections. Apparently I was wrong! So that solves my
problem of needing a full version of SQLServer.

I guess this solves my problem. Now I just need to figure out how to wrap
it all up in a neat setup without too much hassle for the user :)

Rinze
 
Michel said:
Hello Rinze

use foreign key relationships and cascade deletes / updates for this
purpose.

with SMS you can do this graphicly but it is also possible with script
http://technet.microsoft.com/en-us/library/ms173393.aspx

HTH

Michel

In SMS I can define the relations graphically on our full SQL server and in
my SQLExpress. But when I open the SQLCE db I can't for some reason. But I
have made a mistake regarding SQLExpress. I thought it didn't accept remote
connections (I thought that was one of the things that made it 'express').
But seeing it does accept remote connections, that solves my problem.

Rinze
 
Rinze

Although your problem is already solved , here is option for you to consider
for anny future projects

You could also have solved this by using remoting ( WCF ) for your
database part
the whole problem with the 64 bit thingy is that a process space runs either
32 or 64 bit so what you could do was to call a host outside the current
process space
this could be a 32 / 64 bit prog without anny problems .

Just another interresting option :-)

Michel
 
Hello Rinze ,

AFAIK
I thought it didn't accept remote connections (I thought that was one of
the things that made it 'express').

After proper configuration it does accept external connection however not
after a default install you need to set some options

HTH

Michel
 
Back
Top