点击或拖拽改变大小

DbServer.BLOBDirectImport 方法

X#
将文件导入 BLOB 文件并返回指向数据的指针。

命名空间:  VO
程序集:  VORDDClasses (在 VORDDClasses.dll 中) 版本:2.22 GA
语法
 VIRTUAL METHOD BLOBDirectImport(
	nPointer,
	oFSSource
) AS USUAL CLIPPER
查看代码

参数

nPointer (Optional)
类型:__Usual
指向导入后将释放的 BLOB 数据的指针。此指针可以使用 DBServer:BLOBDirectPut()、DBServer:BLOBDirectImport() 或 DBServer:FieldInfo(DBS_BLOB_POINTER, nFieldPos) 获取。传递0将禁用数据释放。 重要!如果指定,DBServer:BLOBDirectImport() 会释放与 nOldPointer 关联的空间,以供其他数据重用。 因此,在将其作为参数传递给此方法后,使用 nOldPointer 与任何 BLOB 方法一起使用是非法的。使用方法的返回值来引用新存储的数据。
oFSSource (Optional)
类型:__Usual
指定包含要读取 BLOB 数据的文件名称的字符串或 filespec 对象,包括可选的驱动器、目录和扩展名。 有关文件搜索和创建规则,请参阅 SetDefault() 和 SetPath()。不假定默认扩展名。

返回值

类型:__Usual
存储在源文件中的 BLOB 图像的数字指针。
备注
此方法尝试以共享模式打开源文件。如果文件不存在,则会引发运行时错误。如果文件成功打开,则操作继续进行。 如果由于另一个进程独占使用文件而拒绝访问,则 NetErr() 设置为 TRUE,并且数据服务的 Status 属性设置。 有关解决并发冲突的更多信息,请参阅程序员指南中的“并发控制”章节。
提示 提示:
源文件的大小没有限制,除了您必须有足够的磁盘空间来进行复制。
DBServer:BLOBDirectImport() 提供了一种将文件内容复制到BLOB文件中的机制。 DBServer:BLOBDirectImport() 与 DBServer:BLOBDirectExport() 一起使用,以在外部文件和 BLOB 文件之间来回传输数据。 您可以将 DBServer:BLOBDirectImport() 与各种文件类型一起使用,包括图像、文字处理文件和打印机字体。 这两种方法非常适合创建文档、图形、声音等数据库。 重要!使用 DBServer:BLOBDirectImport() 导入文件后,nNewPointer(返回值)是访问 BLOB 文件中数据的唯一方法。 由您(开发人员)提供此引用的永久存储(请参阅下面的示例)
提示 提示:
DBServer:FieldInfo(DBS_BLOB_TYPE, nFieldPos) 将返回“C”(字符串), 用于使用 DBServer:BLOBDirectImport() 创建的任何备注字段。
示例
此示例说明如何在 BLOB 文件中存储设置信息,然后有选择地检索存储的信息:
X#
 1FUNCTION PutSettings(aColors AS ARRAY, aPaths AS ARRAY, aPW AS ARRAY) AS VOID
 2LOCAL aSettings AS ARRAY
 3LOCAL oDBSetup AS DBServer
 4
 5oDBSetup  := Setup{}
 6aSettings := {}
 7AAdd(aSettings, oDBSetup:BLOBDirectPut(0, aColors))
 8AAdd(aSettings, oDBSetup:BLOBDirectPut(0, aPaths))
 9AAdd(aSettings, oDBSetup:BLOBDirectPut(0, aPW))
10oDBSetup:BLOBRootPut(aSettings)
11oDBSetup:Close()
12
13FUNCTION GetColors() AS ARRAY
14LOCAL aSettings AS ARRAY
15LOCAL aColors AS ARRAY
16LOCAL oDBSetup AS DBServer
17
18oDBSetup  := Setup{}
19aSettings := oDBSetup:BLOBRootGet()
20aColors   := oDBSetup:BLOBDirectGet(aSettings[1])
21oDBSetup:Close()
22
23RETURN aColors
参见