DbServer.BLOBDirectImport 方法 (Int32, String) | |
将文件导入 BLOB 文件并返回指向数据的指针。
命名空间:
XSharp.VO.SDK
程序集:
XSharp.VORDDClasses (在 XSharp.VORDDClasses.dll 中) 版本:2.22 GA
语法 VIRTUAL METHOD BLOBDirectImport(
nPointer AS LONG,
cSource AS STRING
) AS USUAL
public virtual __Usual BLOBDirectImport(
int nPointer,
string cSource
)
查看代码参数
- nPointer
- 类型:Int32
指向导入后将释放的 BLOB 数据的指针。此指针可以使用 DBServer:BLOBDirectPut()、DBServer:BLOBDirectImport() 或 DBServer:FieldInfo(DBS_BLOB_POINTER,
nFieldPos) 获取。传递0将禁用数据释放。
重要!如果指定,DBServer:BLOBDirectImport() 会释放与 nOldPointer 关联的空间,以供其他数据重用。
因此,在将其作为参数传递给此方法后,使用 nOldPointer 与任何 BLOB 方法一起使用是非法的。使用方法的返回值来引用新存储的数据。
- cSource
- 类型:String
包含要读取 BLOB 数据的文件名称的字符串,包括可选的驱动器、目录和扩展名。
有关文件搜索和创建规则,请参阅 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 文件中存储设置信息,然后有选择地检索存储的信息:
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
参见