描述
运行零个或多个UTF-8编码,分号分隔的SQL语句。
EXEC方法是围绕准备步和最终确定的便利包装器,允许应用程序运行多个SQL语句,而无需使用大量代码。
PB语法
METHOD Exec ( _ BYREF sql AS STRING _ BYVAL pCallback AS DWORD, _ BYVAL pData AS DWORD, _ BYREF ppErrMsg AS DWORD _ ) AS LONG |
参数
sql
[in]一个或多个UTF-8编码,分号分隔的SQL语句。当运行EXEC时,应用程序不得修改传递到此参数的SQL语句文本。
pCallback
[in]指向回调函数的指针。如果不为NULL,则从评估的SQL语句中输出的每个结果行调用回调函数。如果为NULL,则不会调用回调,并忽略结果行。
pData
[in]一个可选值,它被转发到每个回调调用的第一个参数。
ppErrMsg
[in]如果不为NULL,则从sqlite3_malloc获取的内存中写入任何错误消息,并传回。为避免内存泄漏,应用程序应该在不再需要错误消息字符串后调用自由返回的错误消息字符串。如果此参数不为空,并且没有发生错误,则EXEC将返回前将指针设置为NULL。
返回值
如果成功返回SQLITE_OK,否则返回错误代码。
备注
回调函数原型:
typedef int (*sqlite3_callback)(void*,int,char**, char**);
FUNCTION SQLite_Exec_Callback CDECL ( _
BYVAL pData AS DWORD, _
BYVAL numCols AS LONG, _
BYVAL pszColValues AS ASCIIZ PTR, _
BYVAL pszColNames AS ASCIIZ PTR _
) AS LONG
pData
[in]EXEC的pData参数中传递的值。
numCols
[in]结果中的列数。
pColValues
[in]指向从ColumnText获得的字符串指针数组的指针,每列有一个。如果结果行的元素为空,则EXEC回调的相应字符串指针是空指针。
pColNames
[in]指针指向字符串的指针数组,其中每个条目表示从ColumnName获取的对应结果列的名称。
返回值
如果EXEC回调返回非零,则EXEC函数返回SQLITE_ABORT,而不再调用回调,而不运行任何后续的SQL语句。
用于检索pColValues和pColNames数组的内容的用法示例:
FOR i = 0 TO numCols - 1
? "Column name: " & @@pszColNames[i]
? "Column value: " & @@pszColVals[i]
NEXT