PvListDSNs()
Retrieves the list of system datasource names (DSN) of type Pervasive ODBC Engine Interface.
Header File: catalog.h (See also
Header Files)
Function First Available In Library: w3dbav75.dll (Windows), libpsqldti.so (Linux), libpsqldti.dylib (macOS) (See also
Link Libraries)
This function is deprecated in PSQL v11 and higher versions. Use the ODBC API to work with client DSNs.
Syntax
BTI_API PvListDSNs(
BTI_LONG hConnection,
BTI_ULONG_PTR pdsnListSize,
BTI_CHAR_PTR pdsnList,
BTI_CHAR filtering);
Arguments
In | hConnection | Connection handle that identifies the server. Connection handles are obtained with the
PvConnectServer() function. |
In/Out | pdsnListSize | Address of an unsigned long containing the size of the buffer for the list of DSNs. Receives actual size of the returned DSN list. |
Out | pdsnList | Contains the list of DSNs if successful. |
In | filtering | Set to 1 if you only want system PSQL Engine DSNs. Set to 0 if you want all DSNs. |
Return Values
P_OK | The operation was successful. |
P_E_INVALID_HANDLE | Invalid connection handle. |
P_E_NULL_PTR | Call with NULL pointer. |
P_E_BUFFER_TOO_SMALL | The buffer is too small for the string. In this case, the required buffer size is returned in pdsnListSize. |
P_E_FAIL | Failed for other reasons. |
Remarks
The following precondition must be met:
•Connection established by
PvConnectServer() or if you are performing the operation on a local machine, P_LOCAL_DB_CONNECTION may be used as the connection handle.
To retrieve the list of DSNs without having to prompt the user to login, pass empty strings for username and password when establishing the server connection with
PvConnectServer().
Note The connection established by passing empty strings for username and password is an insecure connection, and will not have sufficient rights to perform most of the other operations in DTI.
Example
BTI_WORD res = 0;
BTI_ULONG dsncount = 0;
BTI_ULONG dsnListSize = 0;
BTI_CHAR * dsnList;
// MAX_DSN_NAME_LENGTH is defined to be 32
// in catalog.h
res = PvCountDSNs (hConnection,
&dsnCount,
1);
dsnlistSize = dsnCount * (MAX_DSN_NAME_LENGTH+1);
dsnList = new char[dsnListSize];
res = PvListDSNs (hConnection,
&dsnListSize,
dsnList,
1);
See Also