SQLReadFileDSN 函数

一致性
引入的版本:ODBC 3.0

摘要
SQLReadFileDSN 从文件 DSN 读取信息。

语法

  
BOOL SQLReadFileDSN(  
     LPCSTR   lpszFileName,  
     LPCSTR   lpszAppName,  
     LPCSTR   lpszKeyName,  
     LPSTR    lpszString,  
     WORD     cbString,  
     WORD *   pcbString);  

参数

lpszFileName
[输入]指向包含 .dsn 文件名称的数据缓冲区的指针。 .dsn 扩展名将追加到所有没有 .dsn 扩展名的文件名。 *lpszFileName 中的值必须是以 null 结尾的字符串。

lpszAppName
[输入]指向包含应用程序名称的数据缓冲区的指针。 这是 ODBC 节的“ODBC”。 *lpszAppName 中的值必须是以 null 结尾的字符串。

lpszKeyName
[输入]指向包含要读取的键名称的数据缓冲区的指针。 有关保留关键字,请参阅“注释”。 *lpszAppName 中的值必须是以 null 结尾的字符串。

lpszString
[输出]指向包含与要读取的键关联的字符串的数据缓冲区的指针。

如果 *lpszFileName 是有效的 .dsn 文件名,但 lpszAppName 参数为空指针, 而 lpszKeyName 参数为空指针,则 *lpszString 包含有效应用程序的列表。 如果 *lpszFileName 是有效的 .dsn 文件名, *lpszAppName 是有效的应用程序名称,但 lpszKeyName 参数为空指针,则 *lpszString 在 DSN 文件的适当节中包含有效保留关键字的列表,用分号分隔。 如果 *lpszFileName 是有效的 .dsn 文件名,但 *lpszAppName 为空指针, 而 lpszKeyName 参数为空指针,则 *lpszString 包含 DSN 文件中各节的列表,由分号分隔。

cbString
[输入] *lpszString 缓冲区的 长度。

2013 年 12 月
[输出] *lpszString 中可返回的总字节数。 如果可返回的字节数大于或等于 cbString,则 *lpszString 中的输出字符串将被截断为 cbString 减去 null 终止字符。 该参数可以为 null 指针。

返回

如果成功,函数将返回 TRUE;如果失败,则返回 FALSE。

诊断

SQLReadFileDSN 返回 FALSE 时,可以通过调用 SQLInstallerError 获取关联的 *pfErrorCode 值。 下表列出了 SQLInstallerError 可返回的 *pfErrorCode 值,并说明了此函数上下文中的每个值。

*pfErrorCode 错误 说明
ODBC_ERROR_GENERAL_ERR 常规安装程序错误 发生错误,其中没有特定的安装程序错误。
ODBC_ERROR_INVALID_BUFF_LEN 缓冲区长度无效 lpszString 参数为 NULL。

cbString 参数小于或等于 0。
ODBC_ERROR_INVALID_PATH 安装路径无效 lpszFileName 参数中指定的文件名路径无效。
ODBC_ERROR_INVALID_REQUEST_TYPE 请求类型无效 lpszAppName 参数为 NULL,而 lpszKeyName 参数有效。
ODBC_ERROR_OUT_OF_MEM 内存不足 由于内存不足,安装程序无法执行该函数。
ODBC_ERROR_OUTPUT_STRING_TRUNCATED 输出字符串被截断 * lpszString 中返回的字符串被截断,因为 cbString 中的值小于或等于 *lpszString 中的值。
ODBC_ERROR_REQUEST_FAILED 申请失败。 文件 DSN 中不存在 关键字。

注释

ODBC 保留用于存储连接信息的节名称 [ODBC]。 此部分的保留关键字与 SQLDriverConnect 中为连接字符串保留的关键字相同。 (有关详细信息,请参阅 SQLDriverConnect 函数 description.)

应用程序可以使用这些保留关键字来读取文件 DSN 中的信息。 如果应用程序想要找出与文件 DSN 关联的无 DSN 连接字符串,它可以为 [ODBC] 节中的任何保留连接字符串关键字调用 SQLReadFileDSN 。 在无 DSN 连接中传递的完整连接字符串是 [ODBC] 节中所有关键字 (保留和特定于驱动程序的) 的组合。

有关以下方面的信息 请参阅
将信息写入文件 DSN SQLWriteFileDSN