SqlLite 自定义函数问题
原型函数如下:
int sqlite3_create_function(
sqlite3 *, //database handle
const char *zFunctionName, //自定义函数名
int nArg, //参数个数,如果为-1则可接受任意数量参数
int eTextRep, //传入参数编码形式
void* pApp, //传入参数指针,可以通过 sqlite3_user_data()方法获取
void (*xFunc)(sqlite3_context*,int,sqlite3_value**),
void (*xStep)(sqlite3_context*,int,sqlite3_value**),
void (*xFinal)(sqlite3_context*)
);
eTextRep的可能取值如下:
#define SQLITE_UTF8 1
#define SQLITE_UTF16 2
#define SQLITE_UTF16BE 3
#define SQLITE_UTF16LE 4
#define SQLITE_ANY 5
delphi定义函数:
function sqlite3_create_function(db: TSQLiteDB; FunctionName: PAnsiChar; nArg, eTextRep:Integer;
pApp ,xFunc, xStep, xFinal: Pointer):integer; stdcall; external 'sqlite3.dll';
自定义函数:
procedure test(a: string);
begin
a := a +'test';
end;
调用函数:
// DataBase创建
FDataBase.FileName := Fpath;
FDataBase.Open();
test := sqlite3_create_function(FDataBase, 'test', 1, SQLITE_ANY, nil, @test, nil, nil);
编译OK FDataBase OK 查dll 有该函数
换sqlite3_create_function_V2 仍然不可以
都会报内存错误
帮忙看一下