数据库函数

此材料适用于编写自己的安装程序的开发人员和想要了解有关安装程序数据库表的详细信息的开发人员。 有关安装程序的一般信息,请参阅 关于 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 函数参考 部分中列出的安装程序函数为应用程序创建安装包。