Dear PowerBuider Programmers,
this might emerge as a philosophical question, but I still hope to get some answers:
PowerBuilder allows many different ways to access Microsoft SQL Server databases from classic (client/server) PB windows applications:
- ODBC - PBODB.dll + PBODB.INI: this is the one we use, mainly because the "SQL Server" ODBC driver is pre-installed, which allows for xcopy-deployment style applications accessing the database using DSN-less connections.
- OLE DB - PBOLE.DLL + PBODB.INI: this seems to be based on OBDC because it also uses PBODB.INI
- With PowerBuilder 2019 R3 there is even a OLE-DB provider specifically for SQL Server. I have no idea why this is necessary, given the fact that there is already a generic OLE DB driver.
- SQL Server Native Client - PBSNC.DLL: the latest version of the Microsoft SQL Server Native Client is 11, and MS has deprecated it. So this does not seem to have any future.
My question is: Do you know about any advantages of using (the new) OLE DB (or even SNC) over ODBC?
If you use OLEDB or SNC: How did you decide for it (and against ODBC)?
Sidenote: Unfortunately, Microsoft does *not* ship the latest SQL Server ODBC Driver under the name "SQL Server" in a standard windows client installation, but it needs a separate install (currently Microsoft "ODBC Driver 17 for SQL Server"). So if you want to use up-to-date features of the driver, you need to install it. Within the ODBC Administrator, the driver is called "ODBC Driver 17 for SQL Server". The SQL_DBMS_Name setting of the driver is "Microsoft SQL Server", and this is also the section PowerBuilder looks up in PBODB.INI, which is also different from the pre-installed driver which uses "SQL Server".
Thanks for any answers.