描述
此方法返回使用作为第一个函数参数传递的数据库连接句柄可访问的特定数据库表的特定列的元数据。
PB语法
METHOD TableColumnMetadata ( _ BYREF strDbName AS STRING _ BYREF strTableName AS STRING, _ BYREF strColumName AS STRING, _ BYREF strDataType AS DWORD, _ BYREF strCollSeq AS DWORD, _ BYREF pNotNull AS LONG, _ BYREF pPrimaryKey AS LONG, _ BYREF pAuntoinc AS LONG _ ) AS LONG |
参数
pDb
[in]数据库连接句柄。必须是从sqlite3_open,sqlite3_open16或sqlite3_open_v2获取的sqlite3对象指针。 数据库连接不能关闭。
szDbName
[in]数据库的名称(即包含指定表或NULL的“main”,“temp”或附加数据库。如果为NULL,则使用与数据库引擎相同的算法来搜索所有附加的数据库以解析不合格的表引用。
szTableName
[in]所需列的表名称。不能为空。
szColumnName
[in]所需列的列名称。不能为空。
strDataType
[out]指向接收指向声明类型的指针的变量的指针。可以为NULL。
pszCollSeq
[out]指向接收指向排序规则序列名称的指针的变量的指针。可以为NULL。
pNotNull
[out]指向一个LONG变量的指针,如果NOT NULL约束存在则接收到TRUE。可以为NULL。
pPrimaryKey
[out]如果列是主键的一部分,则指向一个LONG变量的指针,该变量接收到TRUE。可以为NULL。
pAuntoinc
[out]指向一个LONG变量的指针,如果列是自动递增的,则该变量接收到TRUE。可以为NULL。
返回值
如果成功返回SQLITE_OK,否则返回错误代码。
备注
通过写入作为此函数的第5个和后续参数传递的存储器位置返回元数据。任何这些参数都可以是NULL,在这种情况下,元数据的相应元素被省略。
参数 |
输出类型 |
描述 |
5th |
const char * |
数据类型 |
6th |
const char * |
默认排序规则序列的名称 |
7th |
INT |
如果列具有NOT NULL约束,则为True |
8th |
INT |
如果列是PRIMARY KEY的一部分,则为True |
9th |
INT |
如果列为AUTOINCREMENT,则为True |
由声明类型和排序规则序列返回的字符指针所指向的内存才有效,直到下一次调用任何SQLite API函数为止。
如果指定的表实际上是视图,则返回错误代码。
如果指定的列是“rowid”,“oid”或“_rowid_”和INTEGER PRIMARY KEY列已被显式声明,则为显式声明的列设置输出参数。如果没有明确声明的INTEGER PRIMARY KEY列,则输出参数设置如下:
数据类型:“INTEGER”
整理顺序:“BINARY”
不为null:0
主键:1
自动增量:0
此函数可能会从数据库文件加载一个或多个模式。如果在此过程中发生错误,或者无法找到请求的表或列,则返回错误代码,并在数据库连接中留下错误消息(使用ErrMsg检索)。
仅当已使用定义的SQLITE_ENABLE_COLUMN_METADATA C预处理器符号编译库时,此API才可用。