数据库函数

本材料适用于编写自己的安装程序的开发人员,以及想要详细了解安装程序数据库表的开发人员。 有关安装程序的一般信息,请参阅关于 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 将字符串复制到指定的字段中。

 

摘要信息属性函数

函数 说明
MsiGetSummaryInformation 获取安装程序数据库的摘要信息流的句柄。
MsiSummaryInfoGetProperty 从摘要信息中获取单个属性。
MsiSummaryInfoGetPropertyCount 返回摘要信息流中的属性数。
MsiSummaryInfoPersist 将已更改的摘要信息写回到摘要信息流。
MsiSummaryInfoSetProperty 设置单个摘要信息属性。

 

安装程序状态访问函数

函数 说明
MsiGetLanguage 返回当前安装的数字语言。
MsiGetLastErrorRecord 返回上次为调用进程返回的错误记录。
MsiGetMode 返回布尔内部安装状态之一。
MsiGetProperty 获取安装程序属性的值。
MsiSetProperty 设置安装属性的值。
MsiSetMode 设置内部引擎布尔状态。

 

安装程序操作函数

函数 说明
MsiDoAction 执行内置操作、自定义操作或用户界面向导操作。
MsiEvaluateCondition 计算包含属性名称和值的条件表达式。
MsiProcessMessage 将错误记录发送到安装程序进行处理。
MsiSequence 执行操作序列。

 

安装程序位置函数

函数 说明
MsiGetSourcePath 返回 Directory 表中文件夹的完整源路径。
MsiGetTargetPath 返回 Directory 表中文件夹的完整目标路径。
MsiSetTargetPath 设置 Directory 表中文件夹的完整目标路径。

 

安装程序选择函数

函数 说明
MsiEnumComponentCosts 枚举安装某个组件所需的每个驱动器的磁盘空间。
MsiGetComponentState 获取组件的状态。
MsiGetFeatureCost 返回功能所需的磁盘空间。
MsiGetFeatureState 获取功能的状态。
MsiGetFeatureValidStates 返回有效的安装状态。
MsiSetComponentState 将组件设置为指定状态。
MsiSetFeatureAttributes 在运行时修改功能的默认属性。
MsiSetFeatureState 将功能设置为指定状态。
MsiSetInstallLevel 设置完整产品安装的安装级别。
MsiVerifyDiskSpace 检查是否有足够的磁盘空间。

 

用户界面函数

函数 说明
MsiEnableUIPreview 启用用户界面的预览模式。
MsiPreviewBillboard 在显示的对话框中显示包含主机控件的标牌。
MsiPreviewDialog 以无模式和非活动状态显示对话框。

 

所有函数都支持 ANSI 和 Unicode 调用。 若要使用这些函数,请包含 MsiQuery.h 并与 Msi.lib 链接。

安装函数

除了上面列出的数据库访问函数之外,还可以使用安装程序函数参考部分中列出的安装程序函数来为应用程序创建安装包。