点击或拖拽改变大小

Functions.DbInfo 方法

X#
返回并可选择性地更改有关工作区中打开的数据库文件的信息。

命名空间:  XSharp.RT
程序集:  XSharp.RT (在 XSharp.RT.dll 中) 版本:2.22 GA
语法
 FUNCTION DbInfo(
	kInfoType,
	uNewSetting
) AS USUAL CLIPPER
查看代码

参数

kInfoType (Optional)
类型:__Usual
指定信息的类型。
常量在下面的"常量"部分中描述。但请注意,并非所有常量都适用于所有RDD。
uNewSetting (Optional)
类型:__Usual
如果指定,此参数用于更改设置的值。
数据类型(以及是否可以指定 uNewSetting)取决于 kInfoType 常量,并在下面的"常量"部分中有详细说明。

返回值

类型:__Usual
如果未指定 uNewSetting,RDDInfo() 返回当前设置。
如果指定了 uNewSetting,则返回先前的设置。
备注
默认情况下,此函数在当前选定的工作区上操作。
可以通过在别名表达式中指定来使其在未选定的工作区上操作。
常量描述
DBI_ALIAS返回工作区的别名名称(作为字符串)。
DBI_BLOB_HANDLE 返回一个 IntPtr,表示 BLOB 文件的文件句柄。 该常量通常与 FieldInfo(DBS_BLOB_LEN, ...) 和 FieldInfo(DBS_BLOB_POINTER, ...) 一起使用,使用低级函数(如 FRead())直接访问 BLOB 字段。
DBI_BLOB_INTEGRITY 测试 BLOB 文件的内部表的完整性,并返回一个逻辑值,指示完整性检查的成功(TRUE)或失败(FALSE)。 通常情况下,这不是必要的,但如果出于任何原因,文件的完整性有问题,这是很方便的。 这不会测试 .DBF 和 BLOB 文件之间的完整性。
如果完整性检查失败,您可以运行 Info(DBI_BLOB_RECOVER),它将自动纠正 BLOB 文件的表,但会放弃一些空间,否则会被重新使用。

重要! DBServer:Info(DBI_BLOB_INTEGRITY) 是一个磁盘密集型操作,可能会显著减慢数据服务器的处理速度,特别是在繁忙的网络上。
DBI_BLOB_RECOVER 通过纠正其内部表来恢复损坏的 BLOB 文件,并返回 NIL。只有在 DBServer:Info(DBI_BLOB_INTEGRITY) 返回 FALSE 时才应运行此操作。请注意,运行 DBServer:Info(DBI_BLOB_RECOVER) 后,BLOB 文件会失去一些大小效率。
DBI_BOF返回一个逻辑值,指示数据服务器的文件开头状态(参见 DBServer:BOF)。
DBI_CANPUTREC返回一个逻辑值,指示数据服务器是否支持放置记录。
DBI_CHILDCOUNT返回从此数据服务器设置的关系的数量。
DBI_DB_VERSION返回主机 RDD(CAVORDDB.DLL 或 CAVORDD.DLL)的版本号。
DBI_DBFILTER返回过滤表达式(作为字符串)(参见 DBServer:Filter)。
DBI_EOF返回一个逻辑值,指示数据服务器的文件结尾状态(参见 DBServer:EOF)。
DBI_FCOUNT返回字段数(参见 DBServer:FCount)。
DBI_FILEHANDLE返回一个 IntPtr,表示此数据库文件的文件句柄。
DBI_FILESTREAM返回一个表示此数据库文件的文件流的流对象。
DBI_FOUND返回一个逻辑值,指示最后一次对此数据服务器的搜索操作的成功或失败(参见 DBServer:Found)。
DBI_FULLPATH返回已打开的数据库文件的完整路径名。
DBI_GETDELIMITER返回默认的分隔符。
DBI_GETHEADERSIZE返回文件的头部大小(参见 DBServer:Header)。
DBI_GETLOCKARRAY返回已锁定的记录数组。
DBI_GETRECSIZE返回文件的记录大小(参见 DBServer:RecSize)。
DBI_GETSCOPE返回定位条件作为代码块。
DBI_ISANSI返回数据库文件的 ANSI 标志(TRUE 表示 ANSI,FALSE 表示 OEM)。
DBI_ISDBF返回一个逻辑值,指示 RDD 是否支持 .DBF 文件格式。
DBI_ISFLOCK返回文件锁定状态。
DBI_LASTUPDATE返回文件上次更新的日期(参见 DBServer:LUpdate)。
DBI_LOCKCOUNT返回锁定的记录数。
DBI_LOCKOFFSET返回当前的锁定偏移量作为数值。
DBI_MEMOBLOCKSIZE返回与此数据库关联的备注文件的块大小。
DBI_MEMOEXT返回与此数据库关联的备注文件的默认扩展名。
DBI_MEMOHANDLE返回一个 IntPtr,表示与此数据库文件关联的备注文件的 DOS 文件句柄。
DBI_MEMOSTREAM返回一个表示与此数据库文件关联的备注文件的文件流的流对象。
DBI_MEMOPATH返回已打开的备注文件的完整路径名。
DBI_RDD_VERSION返回此数据库的 RDD(CAVORDDB.DLL 或 CAVORDD.DLL)的版本号。
DBI_SETDELIMITER设置默认的分隔符。
DBI_SHARED返回共享标志值。
DBI_TABLEEXT返回数据库文件的扩展名。
DBI_VALIDBUFFER返回一个逻辑值,指示当前缓冲区是否有效。
DBI_USER用户定义值的开始。
示例
以下示例返回工作区信息:
X#
1? DBInfo(DBI_GETHEADERSIZE)    // 等同于 Header()
2? DBInfo(DBI_LASTUPDATE)        // 等同于 LUpdate()
3? DBInfo(DBI_GETRECSIZE)        // 等同于 RecSize()
4? DBInfo(DBI_FULLPATH)        // 完整路径名
以下示例将显示当前工作区中使用的所有RDD:
X#
 1FUNCTION RddTest()
 2    LOCAL n, i AS INT
 3    LOCAL rddList AS _RDDLIST
 4    USE Demo NEW
 5    rddList := DBInfo(DBI_RDD_LIST)
 6    ? "涉及的Rdds: ", rddList.uiRddCount
 7    FOR i := 1 UPTO rddList.uiRddCount
 8            ? rddList.atomRddName[I]
 9    NEXT I
10    MemFree(rddList)
11    RETURN
参见