LocalDBStartInstance 函数

启动指定的 SQL Server Express LocalDB 实例。

头文件: sqlncli.h

语法

HRESULT LocalDBStartInstance(  
           PCWSTR pInstanceName,  
           DWORD dwFlags,   
           LPWSTR wszSqlConnection,   
           LPDWORD lpcchSqlConnection   
);  

参数

pInstanceName
[输入]要启动的 LocalDB 实例的名称。

dwFlags
[输入]保留以供将来使用。 当前应设置为 0。

wszSqlConnection
[输出]用于将连接字符串存储到 LocalDB 实例的缓冲区。

lpcchSqlConnection
[输入/输出]在输入中包含 wszSqlConnection 缓冲区的大小(包括任何尾随 null)。 在输出中,如果给定的缓冲区大小太小,则包含所需的缓冲区大小(以字符为单位,包括任何尾随 null)。

退货

S_OK
函数成功。

LOCALDB_ERROR_NOT_INSTALLED
计算机上未安装 SQL Server Express LocalDB。

LOCALDB_ERROR_INVALID_PARAMETER
一个或多个指定的输入参数无效。

LOCALDB_ERROR_INVALID_INSTANCE_NAME
指定的实例名称无效。

LOCALDB_ERROR_UNKNOWN_INSTANCE
实例不存在。

LOCALDB_ERROR_INSUFFICIENT_BUFFER
指定的缓冲区 wszSqlConnection 太小。

LOCALDB_ERROR_WAIT_TIMEOUT
尝试获取同步锁时发生超时。

LOCALDB_ERROR_INSTANCE_FOLDER_PATH_TOO_LONG
应存储实例的路径比MAX_PATH长。

LOCALDB_ERROR_CANNOT_GET_USER_PROFILE_FOLDER
无法检索用户配置文件文件夹。

LOCALDB_ERROR_CANNOT_ACCESS_INSTANCE_FOLDER
无法访问实例文件夹。

LOCALDB_ERROR_CANNOT_ACCESS_INSTANCE_REGISTRY
无法访问实例注册表。

LOCALDB_ERROR_CANNOT_MODIFY_INSTANCE_REGISTRY
无法修改实例注册表。

LOCALDB_ERROR_CANNOT_CREATE_SQL_PROCESS
无法创建 SQL Server 的进程。

LOCALDB_ERROR_SQL_SERVER_STARTUP_FAILED
SQL Server 进程已启动,但 SQL Server 启动失败。

LOCALDB_ERROR_INSTANCE_CONFIGURATION_CORRUPT
实例配置已损坏。

LOCALDB_ERROR_AUTO_INSTANCE_CREATE_FAILED
无法创建自动实例。 有关错误详细信息,请参阅 Windows 应用程序事件日志。

LOCALDB_ERROR_INTERNAL_ERROR
发生意外错误。 有关详细信息,请参阅事件日志。

详细信息

连接缓冲区参数 (wszSqlConnection) 和连接缓冲区大小参数 (lpcchSqlConnection) 都是可选的。 下表显示了使用这些参数及其结果的选项。

缓冲区 缓冲区大小 理由 行动
Null Null 用户想要启动实例,不需要管道名称。 启动实例(无管道返回和不需要的缓冲区大小返回)。
Null 目前 用户要求输入输出缓冲区大小。 (在下一次呼叫中,用户可能会请求实际开始。 返回所需的缓冲区大小(无开始和无管道返回)。 结果为S_OK。
目前 Null 不允许;输入不正确。 返回的结果LOCALDB_ERROR_INVALID_PARAMETER。
目前 目前 用户想要启动实例,并且需要管道名称才能在启动实例后连接到它。 检查缓冲区大小,启动实例,并在缓冲区中返回管道名称。
缓冲区大小参数返回“server=”字符串的长度,不包括终止 null。

有关使用 LocalDB API 的代码示例,请参阅 SQL Server Express LocalDB 参考

另请参阅

SQL Server Express LocalDB 标头和版本信息