Search
Module:
Directory

   Desktop Functions:

   Smart Device Functions:


Show Recent Changes
Subscribe (RSS)
Misc. Pages
Comments
FAQ
Helpful Tools
Playground
Suggested Reading
Website TODO List
Support Forum
Download Visual Studio Add-In

Terms of Use
Privacy Policy
SQLInstallerError (odbccp32)
 
.
Summary
SQLInstallerError returns error or status information for the ODBC installer functions.

C# Signature:

[DllImport("odbccp32", CharSet=CharSet.Auto)]
public static extern SQL_RETURN_CODE    SQLInstallerError(int iError, ref SQL_INSTALLER_ERROR_CODE pfErrorCode, StringBuilder lpszErrorMsg, int cbErrorMsgMax, ref int pcbErrorMsg);

VB Signature:

<DllImport("ODBCCP32.dll", CallingConvention:=CallingConvention.Winapi, CharSet:=CharSet.Auto, SetLastError:=True)> _
Public Shared Function SQLInstallerError(ByVal iError As Integer, ByRef pfErrorCode As Integer, ByVal lpszErrorMsg As StringBuilder, ByVal cbErrorMsgMax As Integer, ByRef pcbErrorMsg As Integer) As SQL_RETURN_CODE
End Function

C# User-Defined Types:

public enum SQL_RETURN_CODE : short
{
    SQL_ERROR            = -1,
    SQL_INVALID_HANDLE        = -2,
    SQL_SUCCESS        = 0,
    SQL_SUCCESS_WITH_INFO    = 1,
    SQL_STILL_EXECUTING    = 2,
    SQL_NEED_DATA        = 99,
    SQL_NO_DATA        = 100
}

public enum SQL_INSTALLER_ERROR_CODE : uint
{
     ODBC_ERROR_GENERAL_ERR = 1,
     ODBC_ERROR_INVALID_BUFF_LEN = 2,
     ODBC_ERROR_INVALID_HWND = 3,
     ODBC_ERROR_INVALID_STR = 4,
     ODBC_ERROR_INVALID_REQUEST_TYPE = 5,
     ODBC_ERROR_COMPONENT_NOT_FOUND = 6,
     ODBC_ERROR_INVALID_NAME = 7,
     ODBC_ERROR_INVALID_KEYWORD_VALUE = 8,
     ODBC_ERROR_INVALID_DSN = 9,
     ODBC_ERROR_INVALID_INF = 10,
     ODBC_ERROR_REQUEST_FAILED = 11,
     ODBC_ERROR_INVALID_PATH = 12,
     ODBC_ERROR_LOAD_LIB_FAILED = 13,
     ODBC_ERROR_INVALID_PARAM_SEQUENCE = 14,
     ODBC_ERROR_INVALID_LOG_FILE = 15,
     ODBC_ERROR_USER_CANCELED = 16,
     ODBC_ERROR_USAGE_UPDATE_FAILED = 17,
     ODBC_ERROR_CREATE_DSN_FAILED = 18,
     ODBC_ERROR_WRITING_SYSINFO_FAILED = 19,
     ODBC_ERROR_REMOVE_DSN_FAILED = 20,
     ODBC_ERROR_OUT_OF_MEM = 21,
     ODBC_ERROR_OUTPUT_STRING_TRUNCATED = 22,
     ODBC_ERROR_NOTRANINFO = 23
}

VB.NET User-Defined Types:

Enum RequestFlags As Integer
  ODBC_ADD_DSN = 1
  ODBC_CONFIG_DSN = 2
  ODBC_REMOVE_DSN = 3
  ODBC_ADD_SYS_DSN = 4
  ODBC_CONFIG_SYS_DSN = 5
  ODBC_REMOVE_SYS_DSN = 6
  ODBC_REMOVE_DEFAULT_DSN = 7
End Enum

More

Notes:

Each time a new installer function is called the error queue is flushed. This means that you can only retrieve errors from the last installer function call, and not from ones before it.

SQLInstallerError does not post error values for itself. SQLInstallerError returns SQL_NO_DATA when it is unable to retrieve any error information (in which case pfErrorCode is undefined). If SQLInstallerError cannot access error values for any reason that would normally return SQL_ERROR, SQLInstallerError returns SQL_ERROR but does not post any error values. If either the lpszErrorMsg argument is NULL or the cbErrorMsgMax is less than or equal to 0, this function returns SQL_ERROR. If the buffer for the error message is too short, SQLInstallerError returns SQL_SUCCESS_WITH_INFO and returns the correct pfErrorCode value for SQLInstallerError.

Tips & Tricks:

Please add some!

Sample Code:

StringBuilder         errorMesg        = new StringBuilder( 512 ) ;
SQL_INSTALLER_ERROR_CODE  errorCode        = 0 ;
int               resizeErrorMesg    = 0 ;

//
// Get the error message
//
SQL_RETURN_CODE retCode = SQLInstallerError(1, ref errorCode, errorMesg, errorMesg.Capacity, ref resizeErrorMesg );

VB.NET Sample Code

Dim errorMsg As New StringBuilder(512)
Dim errorCode As Integer = 0
Dim resizeErrorMesg As Integer = 0

' Get the error message
Dim retCode As SQL_RETURN_CODE = SQLInstallerError(1, errorCode, errorMsg, errorMsg.Capacity, resizeErrorMesg)

Alternative Managed API:

Do you know one? Please contribute it!

Documentation

Please edit this page!

Do you have...

  • helpful tips or sample code to share for using this API in managed code?
  • corrections to the existing content?
  • variations of the signature you want to share?
  • additional languages you want to include?

Select "Edit This Page" on the right hand toolbar and edit it! Or add new pages containing supporting types needed for this API (structures, delegates, and more).

 
Access PInvoke.net directly from VS:
Terms of Use
Edit This Page
Find References
Show Printable Version
Revisions