Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Up to now we use DAO 3.51 (MS-Access 97) databases with our application. We are considering using a newer version.

  • Which versions are available?
  • How about deployment?
  • How about royalties/licence fees?
  • Any recommendations about alternatives?

This question should be easily researchable, but I failed.

share|improve this question
11  
I would consider using SQLite. It feels to me like the superior choice for an embedded RDB.. –  Max May 26 '11 at 8:39
    
You failed to find the latest version of Microsoft Access? –  JeffO May 26 '11 at 10:29
1  
@Jeff O I failed to find docs about how to deploy databases in the .accdb format and wether there are licence fees involved. –  Dabblernl May 26 '11 at 10:46
    
should this question migrated to stackoverflow.com? In my opinion it asks for best practises. –  k3b May 26 '11 at 16:31

6 Answers 6

up vote 2 down vote accepted
+100

The only fee to using an Access database file is if you also use the full version of Microsoft Access. If you app is built with Visual Studio, deployment should be pretty easy to include your datafile and necessary drivers (latest version of windows should have them).

The latest format is for 2007/2010. This is a very good article explaining conversions, benefits, etc. http://allenbrowne.com/access2007.html

As long as your app doesn't have multiple users sharing data, SQL Compact is an alternative (See Tom Morgan's Answer), but you would have to adjust your code. If you have users that need to sync to SQL Server from their occasionally connected desktop/mobile app, SQL Compact has many features to make this easier.

share|improve this answer
1  
Thanks! "Latest version of Windows shoud have the latest Access drivers". How can I check that and deploy if necessary. I can't find resources. –  Dabblernl May 26 '11 at 12:06
    
What are you building your application with? –  JeffO May 26 '11 at 17:03
1  
We are migrating from VB6 to VB.Net –  Dabblernl May 26 '11 at 17:31

Have you consdiered SQL Compact?

SQL Server Compact 3.5 SP2 is a free, easy-to-use embedded database engine that lets developers build robust Windows Desktop and mobile applications that run on all Windows platforms including Windows XP, Vista, Pocket PC, and Smartphone.

http://www.microsoft.com/sqlserver/2005/en/us/compact.aspx

share|improve this answer
2  
This is a very underrated database for the Windows Desktop. –  JeffO May 26 '11 at 10:31
1  
@Jeff O: Very. If one is to use it however, there can be considerable limitations that need to be known before going forward with it. IIRC, there's no auto-generated primary keys is one such example which a number of ORMs have trouble with (Even EF). –  Steve Evers May 26 '11 at 16:38
5  
+1 @Snorfus there's a new version SQL Server Compact 4.0 "the columns that have server generated keys like identity, rowguid etc. are also supported in Compact 4.0 when used with ADO.NET Entity Framework 4.0" XCopy deployment, 2.5 megabyte download, use TSQL and integrate with Visual Studio. –  MarkJ May 26 '11 at 16:50
    
@MarkJ: +1 Very nice. Thanks for that. –  Steve Evers May 26 '11 at 17:27

It sounds like you want to MS Access run-time distribution, which you can find here:

http://www.microsoft.com/downloads/en/details.aspx?familyid=57a350cd-5250-4df6-bfd1-6ced700a6715&displaylang=en

This (as it says) "enables you to distribute Access 2010 applications to users who do not have the full version of Access 2010 installed on their computers."

In other words, its the bits that your application needs if a full version of Access is not present.

There are installers there for 32 and 64 bit versions. You can just bundle that installer into your own.

As far as licensing and conditions go, it says: "You do not need to buy any special product in order to redistribute the Access 2010 Runtime. You can freely redistribute it or point users to this download."

So in other words - redistribute it as you like.

If you don't want Access 2010 runtime, there are available from MS runtimes for other versions of Access as well.

share|improve this answer

you do not need to have msaccess instealled on your pc. all you need is the oledb-driver from microsoft.

note that the connection-string might have chaged.

note that the msaccess ACE-driver only works for 32bit applications but not for 64 bit apps. I donot know if you are allowed to to give this to you customer as a part of your app.

If you want to use other desktop databases:

For Sqlight there are native drivers for 32bit and 64bit you have to provide the correct version. for debugging with vs2010 you must use the 32bit-version because the debugger itself is a 32bit app.

for ms-sqlce i donot know if there is a 64bit version available

share|improve this answer

As to your last point about other alternatives as others have mentioned sqllite but I would add Postgresql and MySql unless you have some requirement that would prevent or make their use impracticable they are both great alternatives. I have used them both on various projects.

Some more info on your project/experience would make answering this question much easier.

HTH

Postgresql and MySQL are both open source.

share|improve this answer

I still can't add comments, thus I have to use an "answer": moderators please take this into account before deleting it. @Ominus: MySQL is not entirely Open Source. It's dual licensed and since the Oracle acquisition, pretty much everything costs double now.

Andrea

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.