当您把图象、音频或视频对象存储在数据库中时, Extender 还在数据库中存储对象的属性。更新对象时,Extender 将更新存储在数据库中的对象属性。可在查询中使用这些属性。
Extender 对其管理的每一属性都创建了 UDF。结果是,可在 SQL 语句中指定 UDF 来存取并使用对象属性。下表列示了 Extender 管理的属性及其 UDF。它还指示了每个属性的对象类型。某些属性,如对象的格式和文件名,对所有对象类型都是通用的。这些属性与图象、音频和视频对象相关联。其他属性,如采样速率或压缩类型,则是专门针对某些对象类型(如音频和视频)的。
属性 | UDF | 图象 | 音频 | 视频 |
---|---|---|---|---|
在其中存储对象的服务器文件的名称 | Filename | x | x | x |
存储对象的人员的用户 ID | Importer | x | x | x |
存储对象的日期和时间 | ImportTime | x | x | x |
以字节计的对象大小 | Size | x | x | x |
上次更新对象的人员的用户 ID | Updater | x | x | x |
上次更新对象的日期和时间 | UpdateTime | x | x | x |
对象的格式(如 GIF 或 MPEG1) | Format | x | x | x |
关于对象的注解 | Comment | x | x | x |
对象的高度(以象素计) | Height | x | x | |
对象的宽度(以象素计) | Width | x | x | |
对象中的颜色数 | NumColors | x | ||
对象的缩略图大小的图象 | Thumbnail | x | x | |
音频中或视频的声道中每次采样返回的字节数 | AlignValue | x | x | |
用来表示每个样本的位数 | BitsPerSample | x | x | |
录制声道数 | NumChannels | x | x | |
持续时间(以秒计) | Duration | x | x | |
采样速率(采样数/秒) | SamplingRate | x | x | |
每秒传送时间的平均字节 | BytesPerSec | x | ||
乐器的声道数 | FindInstrument | x | ||
命名声道的声道号 | FindTrackName | x | ||
录制乐器的名称 | GetInstruments | x | ||
录制乐器的声道号和名称 | GetTrackNames | x | ||
音频的每秒时钟滴答数 | TicksPerSec | x | ||
音频的每四分音符时钟滴答数 | TicksPerQNote | x | ||
长宽比 | AspectRatio | x | ||
视频压缩格式(如 MPEG1) | CompressType | x | ||
吞吐量的帧频 | FrameRate | x | ||
最大吞吐量(以每秒字节数计) | MaxBytesPerSec | x | ||
声道数 | NumAudioTracks | x | x | |
帧数 | NumFrames | x | ||
视频声道数 | NumVideoTracks | x |
可在 SQL 语句 SELECT 子句表达式或 WHERE 子句搜索条件中使用属性 UDF。在请求 UDF 时,指定数据库表中包含对象句柄的列的名称。
例如,以下语句在 SQL SELECT 语句的 SELECT 子句中使用 Updater UDF, 来检索上次更新 Employee 表中的图象的人员的用户 ID:
EXEC SQL BEGIN DECLARE SECTION; char hvUpdatr[30]; EXEC SQL END DECLARE SECTION; EXEC SQL SELECT UPDATER(PICTURE) INTO :hvUpdatr FROM EMPLOYEE WHERE NAME = 'Anita Jones';
以下语句在 SELECT 语句的 SELECT 语句中使用 Filename UDF, 并在 WHERE 子句中使用 NumAudioTracks UDF 来查找存储在 Employee 表中并 带有声道的视频:
EXEC SQL BEGIN DECLARE SECTION; char hvVid_fname[251]; EXEC SQL END DECLARE SECTION; EXEC SQL SELECT FILENAME(VIDEO) INTO :hvVid_fname FROM EMPLOYEE WHERE NUMAUDIOTRACKS(VIDEO)>0;