此材料适用于编写自己的安装程序的开发人员和想要了解有关安装程序数据库表的详细信息的开发人员。 有关安装程序的一般信息,请参阅 关于 Windows Installer。
可以使用安装程序访问函数访问数据库和安装过程。 这些函数只能由自定义安装作和创作工具使用。 某些安装程序访问函数需要 SQL 查询字符串来查询数据库。 查询必须遵循安装程序 SQL 语法。
本主题按类别列出安装程序数据库访问函数。
常规数据库访问函数
| 功能 | 描述 | 
|---|---|
| MsiDatabaseCommit | 提交对数据库的更改。 | 
| MsiDatabaseGetPrimaryKeys | 返回所有主键列的名称。 | 
| MsiDatabaseIsTablePersistent | 返回描述表状态的枚举。 | 
| MsiDatabaseOpenView | 准备数据库查询并创建视图对象。 | 
| MsiGetActiveDatabase | 返回安装的活动数据库。 | 
| MsiViewGetColumnInfo | 返回列名或定义。 | 
| MsiOpenDatabase | 打开数据库文件进行数据访问。 | 
| MsiViewClose | 释放已执行视图的结果集。 | 
| MsiViewExecute | 执行视图查询并提供所需的参数。 | 
| MsiViewFetch | 从视图中提取下一条顺序记录。 | 
| MsiViewGetError | 返回 MsiViewModify 函数中发生的错误。 | 
| MsiViewModify | 更新提取的记录。 | 
数据库管理功能
| 功能 | 描述 | 
|---|---|
| MsiCreateTransformSummaryInfo | 为现有转换创建摘要信息。 | 
| MsiDatabaseApplyTransform | 将转换应用于数据库。 | 
| MsiDatabaseExport | 将表从打开的数据库导出到文本存档文件。 | 
| MsiDatabaseGenerateTransform | 生成两个数据库之间的差异的转换文件。 | 
| MsiDatabaseImport | 将安装程序文本存档表导入打开的数据库。 | 
| MsiDatabaseMerge | 将两个数据库合并在一起。 | 
| MsiGetDatabaseState | 返回数据库的状态。 | 
记录处理函数
| 功能 | 描述 | 
|---|---|
| MsiCreateRecord | 创建具有指定数量的字段的新记录对象。 | 
| MsiFormatRecord | 使用格式字符串设置记录字段数据和属性的格式。 | 
| MsiRecordClearData | 将记录中的所有字段设置为 null。 | 
| MsiRecordDataSize | 返回记录字段的长度。 | 
| MsiRecordGetFieldCount | 返回记录中的字段数。 | 
| MsiRecordGetInteger | 从记录字段中返回整数值。 | 
| MsiRecordGetString | 返回记录字段的字符串值。 | 
| MsiRecordIsNull | 报告记录字段是否为 null。 | 
| MsiRecordReadStream | 将记录流字段中的字节读取到缓冲区中。 | 
| MsiRecordSetInteger | 将记录字段设置为整数字段。 | 
| MsiRecordSetStream | 设置文件中的记录流字段。 | 
| MsiRecordSetString | 将字符串复制到指定的字段中。 | 
Summary Information 属性函数
| 功能 | 描述 | 
|---|---|
| MsiGetSummaryInformation | 获取安装程序数据库的摘要信息流的句柄。 | 
| MsiSummaryInfoGetProperty | 从摘要信息中获取单个属性。 | 
| MsiSummaryInfoGetPropertyCount | 返回摘要信息流中的属性数。 | 
| MsiSummaryInfoPersist | 将已更改的摘要信息写回摘要信息流。 | 
| MsiSummaryInfoSetProperty | 设置单个摘要信息属性。 | 
安装程序状态访问函数
| 功能 | 描述 | 
|---|---|
| MsiGetLanguage | 返回当前安装的数值语言。 | 
| MsiGetLastErrorRecord | 返回上次为调用进程返回的错误记录。 | 
| MsiGetMode | 返回布尔内部安装状态之一。 | 
| MsiGetProperty | 获取安装程序属性的值。 | 
| MsiSetProperty | 设置安装属性的值。 | 
| MsiSetMode | 设置内部引擎布尔状态。 | 
安装程序作函数
| 功能 | 描述 | 
|---|---|
| MsiDoAction | 执行内置作、自定义作或用户界面向导作。 | 
| MsiEvaluateCondition | 计算包含属性名称和值的条件表达式。 | 
| MsiProcessMessage | 将错误记录发送到安装程序进行处理。 | 
| MsiSequence | 执行作序列。 | 
安装程序位置函数
| 功能 | 描述 | 
|---|---|
| MsiGetSourcePath | 返回目录表中文件夹的完整源路径。 | 
| MsiGetTargetPath | 返回目录表中文件夹的完整目标路径。 | 
| MsiSetTargetPath | 设置目录表中文件夹的完整目标路径。 | 
安装程序选择函数
| 功能 | 描述 | 
|---|---|
| MsiEnumComponentCosts | 枚举安装组件所需的每个驱动器的磁盘空间。 | 
| MsiGetComponentState | 获取组件的状态。 | 
| MsiGetFeatureCost | 返回功能所需的磁盘空间。 | 
| MsiGetFeatureState | 获取功能的状态。 | 
| MsiGetFeatureValidStates | 返回有效的安装状态。 | 
| MsiSetComponentState | 将组件设置为指定状态。 | 
| MsiSetFeatureAttributes | 在运行时修改功能的默认属性。 | 
| MsiSetFeatureState | 将特征设置为指定状态。 | 
| MsiSetInstallLevel | 设置完整产品安装的安装级别。 | 
| MsiVerifyDiskSpace | 检查足够的磁盘空间。 | 
用户界面函数
| 功能 | 描述 | 
|---|---|
| MsiEnableUIPreview | 启用用户界面的预览模式。 | 
| MsiPreviewBillboard | 在显示的对话框中显示具有主机控件的广告牌。 | 
| MsiPreviewDialog | 将对话框显示为无模式和非活动状态。 | 
所有函数都支持 ANSI 和 Unicode 调用。 若要使用这些函数,请包括 MsiQuery.h 和与 Msi.lib 的链接。
安装函数
除了上面列出的数据库访问函数之外,还可以使用 Installer 函数参考 部分中列出的安装程序函数为应用程序创建安装包。