2

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.

Dabblernl
  • 493
  • 4
  • 15
  • 11
    I would consider using SQLite. It feels to me like the superior choice for an embedded RDB.. – Max May 26 '11 at 08: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 Answers6

10

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

Tom Morgan
  • 1,689
  • 9
  • 15
  • 3
    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). – Steven Evers May 26 '11 at 16:38
  • 5
    +1 @Snorfus there's a new version [SQL Server Compact 4.0](http://blogs.msdn.com/b/sqlservercompact/archive/2011/01/12/microsoft-sql-server-compact-4-0-is-available-for-download.aspx) "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
3

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.

quickly_now
  • 14,822
  • 1
  • 35
  • 48
2

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.

JeffO
  • 36,816
  • 2
  • 57
  • 124
2

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

k3b
  • 7,488
  • 1
  • 18
  • 31
1

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.

Ominus
  • 1,889
  • 1
  • 15
  • 26
0

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

Andrea Raimondi
  • 219
  • 1
  • 7