The APPGUID option requires running the installer from an elevated Command Prompt.
A product code must be created when using Microsoft Installer to bundle your application setup program. The value passed to APPGUID is your specific product code.
To provide users with a warning that your application depends on OLE DB Driver for SQL Server, use the APPGUID install option in your MSI, as follows: It is important not to uninstall OLE DB Driver for SQL Server until all dependent applications are uninstalled. Installing OLE DB Driver for SQL Server as a dependency This option must be specified in all capital letters. If you use the /passive, /qn, /qb, or /qr option with msiexec, you must also specify IACCEPTMSOLEDBSQLLICENSETERMS=YES, to explicitly indicate that you accept the terms of the end user license. Msiexec /i msoledbsql.msi ADDLOCAL=ALL Silent install To also install the SDK components, specify ADDLOCAL=All on the command line. The client components are files that support running an application that was developed using OLE DB Driver for SQL Server. When you invoke msoledbsql.msi, only the client components are installed by default.
If your application targets a platform other than the one it was developed on, you can download versions of msoledbsql.msi for 圆4 and x86. The 圆4 msoledbsql.msi also installs the 32-bit version of OLE DB Driver for SQL Server.
For more information, see Authoring a Custom Bootstrapper Package for Visual Studio 2005 and Adding Custom Prerequisites. One way to install multiple packages in what seems to the user to be a single installation is to use chainer and bootstrapper technology.
You might have to install OLE DB Driver for SQL Server when you deploy an application. You can distribute OLE DB Driver for SQL Server through msoledbsql.msi. Additionally, the 圆4 msoledbsql.msi installs the same files in %PROGRAMFILES(x86)%\Microsoft SQL Server\Client SDK\OLEDB\182\SDK. For ODBC client applications, OESQL requires a mandatory SSL configuration setting on the OE SQL Server. As of Release 11.6.1, OpenEdge SQL provides properly secure SSL communication for client applications which affects both ODBC and JDBC clients. The OLE DB Driver for SQL Server header and library files (msoledbsql.h and msoledbsql.lib) are installed in %PROGRAMFILES%\Microsoft SQL Server\Client SDK\OLEDB\182\SDK. Incompatible protocol versions - client and server are using different versions of the TLS protocol. (Pseudo code shown:) while( (SQL_SUCCESS or SQL_SUCCESS_WITH_INFO) = SQLFetch(.All appropriate registry settings for the OLE DB Driver for SQL Server are made as part of the installation process. Use SQLGetData to retrieve the chunks of the data. The driver detects the conversion to or from CHAR and WCHAR and returns (-4) SQL_NO_TOTAL instead of *2 or /2 behavior that could be incorrect. The driver no longer assumes that converting from CHAR to WCHAR or WCHAR to CHAR is a (multiply) *2 or (divide)/2 action.Ĭalling SQLGetData no longer returns the length of the expected conversion. SQL Server 2012 (11.x) Native Client (version. The driver incorrectly assumed that converting CHAR to WCHAR could be accomplished as length * 2. SQL Server 2008 R2 Native Client or earlier SQL Server Native Client ODBC Driver version , (SQLPOINTER*) 0x1, 0, &iSize) // Attempting to determine storage size needed Query: select convert(varchar(36), '123') SQLGetData(hstmt, SQL_WCHAR. This application queries a varchar column and binding as Unicode (SQL_UNICODE/SQL_WCHAR): The following shows the impact of the driver change when you use the incorrect pattern. Using SQLGetData to get the size of data is not unsupported.
SQLGetData can only be called to retrieve chunks of actual data. , (SQLPOINTER*)pBuffer, iSize, &iSize) // Retrieve data , (SQLPOINTER*)0x1, 0, &iSize) // Get storage size needed The following pattern should not be used: // bad However, SQLGetData should not be used in this scenario. GetMyFavoriteAPI(pBuffer, &iSize) // Retrieve actual data GetMyFavoriteAPI(pBuffer, &iSize) // Returns needed size in iSize
The following pattern is common for Windows programmers: int iSize = 0 Many Windows functions let you specify a buffer size of 0 and the returned length is the size of the returned data. Prior versions of the SQL Server Native Client ODBC driver returned a length value, which can be incorrect. ODBC functions, such as SQLGetData, SQLBindCol, SQLBindParameter, return (-4) SQL_NO_TOTAL as the length/indicator parameter when using the SQL Server 2012 Native Client ODBC driver. The SQL Server 2012 (11.x) Native Client ODBC Driver (SQLNCLI11.dll) changed how it does of SQL_WCHAR* (NCHAR/NVARCHAR/NVARCHAR(MAX)) and SQL_CHAR* (CHAR/VARCHAR/NARCHAR(MAX)) conversions. Applies to: SQL Server (all supported versions) Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)