Is there a difference between using Provider Access and Provider ODBC?
Posted: Fri 13 Mar 2020 09:34
Hi,
from what I've gathered, the Access provider is simply using ODBC to connect to a database.
That of course makes me wonder if there are major differences between these two providers or if they behave the same?
These are the ConnectStrings, we are using:
Access:
sConnectionString := 'Provider Name=Access;' +
'User ID=Admin;' +
'Password=123;' +
'Database=' + Database + ';' +
'Login Prompt=False;' +
'ExtendedAnsiSQL=True';
ODBC:
sConnectionString := 'Provider Name=ODBC;' +
'DSN Type=ntConnectionString;' +
'Server="' +
'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};' +
'DBQ=' + Database + ';' +
'uid=Admin;' +
'pwd=123;' +
'ExtendedAnsiSQL=1'
'";' +
'Login Prompt=False';
Would UniDac behave the same with those two or should we expect the ODBC variant to behave differently?
----------------------
Little background:
I'm asking this because a needed module is using an old version of the mso.dll of Office 2003. And since the new version of the mso.dll has the same name, the dll won't be loaded twice. So when unidac tries to connect to a database, we encounter an exception within the mso.dll.
The real problem here is that we'd like to use the Access Database Engine of Office 2010 that IS compatible with the mso.dll of Office 2003. But that is regularly overwritten by the Access Database Engine of Office 2016 or 2019 which are also installed on many of our customers' computers.
So we are simply registering the 2010 version under a new name and then want to use that with the ODBC provider of UniDac. So far it seems to make no difference, but we just want to make sure that we're not missing anything.
from what I've gathered, the Access provider is simply using ODBC to connect to a database.
That of course makes me wonder if there are major differences between these two providers or if they behave the same?
These are the ConnectStrings, we are using:
Access:
sConnectionString := 'Provider Name=Access;' +
'User ID=Admin;' +
'Password=123;' +
'Database=' + Database + ';' +
'Login Prompt=False;' +
'ExtendedAnsiSQL=True';
ODBC:
sConnectionString := 'Provider Name=ODBC;' +
'DSN Type=ntConnectionString;' +
'Server="' +
'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};' +
'DBQ=' + Database + ';' +
'uid=Admin;' +
'pwd=123;' +
'ExtendedAnsiSQL=1'
'";' +
'Login Prompt=False';
Would UniDac behave the same with those two or should we expect the ODBC variant to behave differently?
----------------------
Little background:
I'm asking this because a needed module is using an old version of the mso.dll of Office 2003. And since the new version of the mso.dll has the same name, the dll won't be loaded twice. So when unidac tries to connect to a database, we encounter an exception within the mso.dll.
The real problem here is that we'd like to use the Access Database Engine of Office 2010 that IS compatible with the mso.dll of Office 2003. But that is regularly overwritten by the Access Database Engine of Office 2016 or 2019 which are also installed on many of our customers' computers.
So we are simply registering the 2010 version under a new name and then want to use that with the ODBC provider of UniDac. So far it seems to make no difference, but we just want to make sure that we're not missing anything.