mirror of
https://github.com/cheat-engine/cheat-engine
synced 2026-08-15 02:26:08 -04:00
1181 lines
35 KiB
ObjectPascal
1181 lines
35 KiB
ObjectPascal
unit LuaSQL;
|
|
|
|
{$mode delphi}
|
|
|
|
interface
|
|
|
|
uses
|
|
Classes, SysUtils, db, sqldb, sqlite3, sqlite3conn, odbcconn, BufDataset,
|
|
LuaComponent, LuaClass, lua, lualib, lauxlib, typinfo;
|
|
|
|
procedure initializeLuaSQL;
|
|
|
|
implementation
|
|
|
|
uses LuaHandler, LuaCollection, LuaCollectionItem, LuaByteTable;
|
|
|
|
function createSQLTransaction(L: Plua_State): integer; cdecl;
|
|
var owner: TComponent;
|
|
begin
|
|
if lua_gettop(L)=1 then
|
|
owner:=lua_toceuserdata(L, 1)
|
|
else
|
|
owner:=nil;
|
|
|
|
luaclass_newClass(L, TSQLTransaction.Create(owner));
|
|
result:=1;
|
|
end;
|
|
|
|
function createSQLite3Connection(L: Plua_State): integer; cdecl;
|
|
var owner: TComponent;
|
|
begin
|
|
if lua_gettop(L)=1 then
|
|
owner:=lua_toceuserdata(L, 1)
|
|
else
|
|
owner:=nil;
|
|
|
|
luaclass_newClass(L, TSQLite3Connection.Create(owner));
|
|
result:=1;
|
|
end;
|
|
|
|
function setSQLiteLibraryName(L: Plua_State): integer; cdecl;
|
|
begin
|
|
if lua_gettop(L)=1 then
|
|
SQLiteLibraryName:=Lua_ToString(L,1);
|
|
|
|
result:=0;
|
|
end;
|
|
|
|
function sqlite3connection_createDB(L: Plua_State): integer; cdecl;
|
|
begin
|
|
try
|
|
TSQLite3Connection(luaclass_getClassObject(L)).CreateDB;
|
|
except
|
|
on e:exception do
|
|
begin
|
|
lua_pushstring(L, e.message);
|
|
lua_error(L);
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
function sqlite3connection_dropDB(L: Plua_State): integer; cdecl;
|
|
begin
|
|
try
|
|
TSQLite3Connection(luaclass_getClassObject(L)).DropDB;
|
|
except
|
|
on e:exception do
|
|
begin
|
|
lua_pushstring(L, e.message);
|
|
lua_error(L);
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
function sqlite3connection_getInsertID(L: Plua_State): integer; cdecl;
|
|
begin
|
|
lua_pushinteger(L, TSQLite3Connection(luaclass_getClassObject(L)).GetInsertID);
|
|
result:=1;
|
|
end;
|
|
|
|
function createODBCConnection(L: Plua_State): integer; cdecl;
|
|
var owner: TComponent;
|
|
begin
|
|
if lua_gettop(L)=1 then
|
|
owner:=lua_toceuserdata(L, 1)
|
|
else
|
|
owner:=nil;
|
|
|
|
luaclass_newClass(L, TODBCConnection.Create(owner));
|
|
result:=1;
|
|
end;
|
|
|
|
|
|
function sqlconnection_startTransaction(L: Plua_State): integer; cdecl;
|
|
begin
|
|
result:=0;
|
|
try
|
|
TSQLConnection(luaclass_getClassObject(L)).StartTransaction;
|
|
except
|
|
on e:exception do
|
|
begin
|
|
lua_pushstring(L, e.message);
|
|
lua_error(L);
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
function sqlconnection_endTransaction(L: Plua_State): integer; cdecl;
|
|
begin
|
|
result:=0;
|
|
try
|
|
TSQLConnection(luaclass_getClassObject(L)).EndTransaction;
|
|
except
|
|
on e:exception do
|
|
begin
|
|
lua_pushstring(L, e.message);
|
|
lua_error(L);
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
function sqlconnection_executeDirect(L: Plua_State): integer; cdecl;
|
|
begin
|
|
result:=0;
|
|
if lua_gettop(L)>=1 then
|
|
begin
|
|
try
|
|
TSQLConnection(luaclass_getClassObject(L)).ExecuteDirect(Lua_ToString(L,1));
|
|
except
|
|
on e:exception do
|
|
begin
|
|
lua_pushstring(L, e.message);
|
|
lua_error(L);
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
function database_getTransactionCount(L: Plua_State): integer; cdecl;
|
|
begin
|
|
lua_pushinteger(L, TDatabase(luaclass_getClassObject(L)).TransactionCount);
|
|
result:=1;
|
|
end;
|
|
|
|
function customconnection_open(L: Plua_State): integer; cdecl;
|
|
begin
|
|
result:=0;
|
|
try
|
|
TCustomConnection(luaclass_getClassObject(L)).Open;
|
|
except
|
|
on e:exception do
|
|
begin
|
|
lua_pushstring(L, e.message);
|
|
lua_error(L);
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
function customconnection_close(L: Plua_State): integer; cdecl;
|
|
var force: boolean;
|
|
begin
|
|
result:=0;
|
|
if lua_gettop(L)>=1 then
|
|
force:=lua_toboolean(L,1)
|
|
else
|
|
force:=false;
|
|
|
|
try
|
|
TCustomConnection(luaclass_getClassObject(L)).Close(force);
|
|
except
|
|
on e:exception do
|
|
begin
|
|
lua_pushstring(L, e.message);
|
|
lua_error(L);
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
function dbtransaction_getDataBase(L: Plua_State): integer; cdecl;
|
|
begin
|
|
luaclass_newClass(L,TDBTransaction(luaclass_getClassObject(L)).DataBase);
|
|
result:=1;
|
|
end;
|
|
|
|
function dbtransaction_setDataBase(L: Plua_State): integer; cdecl;
|
|
begin
|
|
try
|
|
TDBTransaction(luaclass_getClassObject(L)).DataBase:=lua_ToCEUserData(L,1);
|
|
except
|
|
on e:exception do
|
|
begin
|
|
lua_pushstring(L, e.message);
|
|
lua_error(L);
|
|
end;
|
|
end;
|
|
|
|
result:=0;
|
|
end;
|
|
|
|
function dbtransaction_closeDataSets(L: Plua_State): integer; cdecl;
|
|
begin
|
|
TDBTransaction(luaclass_getClassObject(L)).CloseDataSets;
|
|
result:=0;
|
|
end;
|
|
|
|
function sqltransaction_commit(L: Plua_State): integer; cdecl;
|
|
begin
|
|
result:=0;
|
|
try
|
|
TSQLTransaction(luaclass_getClassObject(L)).Commit;
|
|
except
|
|
on e:exception do
|
|
begin
|
|
lua_pushstring(L, e.message);
|
|
lua_error(L);
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
function sqltransaction_commitRetaining(L: Plua_State): integer; cdecl;
|
|
begin
|
|
result:=0;
|
|
try
|
|
TSQLTransaction(luaclass_getClassObject(L)).CommitRetaining;
|
|
except
|
|
on e:exception do
|
|
begin
|
|
lua_pushstring(L, e.message);
|
|
lua_error(L);
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
function sqltransaction_rollback(L: Plua_State): integer; cdecl;
|
|
begin
|
|
result:=0;
|
|
try
|
|
TSQLTransaction(luaclass_getClassObject(L)).rollback;
|
|
except
|
|
on e:exception do
|
|
begin
|
|
lua_pushstring(L, e.message);
|
|
lua_error(L);
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
function sqltransaction_rollbackRetaining(L: Plua_State): integer; cdecl;
|
|
begin
|
|
result:=0;
|
|
try
|
|
TSQLTransaction(luaclass_getClassObject(L)).rollbackRetaining;
|
|
except
|
|
on e:exception do
|
|
begin
|
|
lua_pushstring(L, e.message);
|
|
lua_error(L);
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
function sqltransaction_startTransaction(L: Plua_State): integer; cdecl;
|
|
begin
|
|
result:=0;
|
|
try
|
|
TSQLTransaction(luaclass_getClassObject(L)).StartTransaction;
|
|
except
|
|
on e:exception do
|
|
begin
|
|
lua_pushstring(L, e.message);
|
|
lua_error(L);
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
function sqltransaction_endTransaction(L: Plua_State): integer; cdecl;
|
|
begin
|
|
result:=0;
|
|
try
|
|
TSQLTransaction(luaclass_getClassObject(L)).EndTransaction;
|
|
except
|
|
on e:exception do
|
|
begin
|
|
lua_pushstring(L, e.message);
|
|
lua_error(L);
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
//-----------------------
|
|
|
|
function dataset_getBlockReadSize(L: Plua_State): integer; cdecl;
|
|
begin
|
|
lua_pushinteger(L, tdataset(luaclass_getClassObject(L)).BlockReadSize);
|
|
result:=1;
|
|
end;
|
|
|
|
function dataset_setBlockReadSize(L: Plua_State): integer; cdecl;
|
|
begin
|
|
result:=0;
|
|
tdataset(luaclass_getClassObject(L)).BlockReadSize:=lua_tointeger(L,1);
|
|
end;
|
|
|
|
function dataset_getBOF(L: Plua_State): integer; cdecl;
|
|
begin
|
|
lua_pushboolean(L, tdataset(luaclass_getClassObject(L)).BOF);
|
|
result:=1;
|
|
end;
|
|
|
|
function dataset_getCanModify(L: Plua_State): integer; cdecl;
|
|
begin
|
|
lua_pushboolean(L, tdataset(luaclass_getClassObject(L)).CanModify);
|
|
result:=1;
|
|
end;
|
|
|
|
function dataset_getDefaultFields(L: Plua_State): integer; cdecl;
|
|
begin
|
|
lua_pushboolean(L, tdataset(luaclass_getClassObject(L)).DefaultFields);
|
|
result:=1;
|
|
end;
|
|
|
|
function dataset_getEOF(L: Plua_State): integer; cdecl;
|
|
begin
|
|
lua_pushboolean(L, tdataset(luaclass_getClassObject(L)).EOF);
|
|
result:=1;
|
|
end;
|
|
|
|
function dataset_getFieldCount(L: Plua_State): integer; cdecl;
|
|
begin
|
|
lua_pushinteger(L, tdataset(luaclass_getClassObject(L)).FieldCount);
|
|
result:=1;
|
|
end;
|
|
|
|
function dataset_getFields(L: Plua_State): integer; cdecl;
|
|
begin
|
|
luaclass_newClass(L, tdataset(luaclass_getClassObject(L)).Fields);
|
|
result:=1;
|
|
end;
|
|
|
|
function dataset_getFound(L: Plua_State): integer; cdecl;
|
|
begin
|
|
lua_pushboolean(L, tdataset(luaclass_getClassObject(L)).Found);
|
|
result:=1;
|
|
end;
|
|
|
|
function dataset_getModified(L: Plua_State): integer; cdecl;
|
|
begin
|
|
lua_pushboolean(L, tdataset(luaclass_getClassObject(L)).Modified);
|
|
result:=1;
|
|
end;
|
|
|
|
function dataset_getIsUniDirectional(L: Plua_State): integer; cdecl;
|
|
begin
|
|
lua_pushboolean(L, tdataset(luaclass_getClassObject(L)).IsUniDirectional);
|
|
result:=1;
|
|
end;
|
|
|
|
function dataset_getRecordCount(L: Plua_State): integer; cdecl;
|
|
begin
|
|
lua_pushinteger(L, tdataset(luaclass_getClassObject(L)).RecordCount);
|
|
result:=1;
|
|
end;
|
|
|
|
function dataset_getRecNo(L: Plua_State): integer; cdecl;
|
|
begin
|
|
lua_pushinteger(L, tdataset(luaclass_getClassObject(L)).RecNo);
|
|
result:=1;
|
|
end;
|
|
|
|
function dataset_setRecNo(L: Plua_State): integer; cdecl;
|
|
begin
|
|
result:=0;
|
|
tdataset(luaclass_getClassObject(L)).RecNo:=lua_tointeger(L,1);
|
|
end;
|
|
|
|
function dataset_getFieldValues(L: PLua_State): integer; cdecl;
|
|
var
|
|
dataset: TDataSet;
|
|
v: string;
|
|
begin
|
|
result:=0;
|
|
dataset:=luaclass_getClassObject(L);
|
|
if lua_gettop(L)>=1 then
|
|
begin
|
|
v:=Lua_ToString(L,1);
|
|
|
|
lua_pushvariant(L, dataset.FieldValues[v]);
|
|
result:=1;
|
|
end;
|
|
end;
|
|
|
|
function dataset_getFilter(L: Plua_State): integer; cdecl;
|
|
begin
|
|
lua_pushstring(L, tdataset(luaclass_getClassObject(L)).Filter);
|
|
result:=1;
|
|
end;
|
|
|
|
function dataset_setFilter(L: Plua_State): integer; cdecl;
|
|
begin
|
|
result:=0;
|
|
tdataset(luaclass_getClassObject(L)).Filter:=Lua_ToString(L,1);
|
|
end;
|
|
|
|
function dataset_getFiltered(L: Plua_State): integer; cdecl;
|
|
begin
|
|
lua_pushboolean(L, tdataset(luaclass_getClassObject(L)).Filtered);
|
|
result:=1;
|
|
end;
|
|
|
|
function dataset_setFiltered(L: Plua_State): integer; cdecl;
|
|
begin
|
|
result:=0;
|
|
tdataset(luaclass_getClassObject(L)).Filtered:=lua_toboolean(L,1);
|
|
end;
|
|
|
|
|
|
function dataset_setFieldValues(L: PLua_State): integer; cdecl;
|
|
var
|
|
dataset: TDataSet;
|
|
v: string;
|
|
begin
|
|
result:=0;
|
|
dataset:=luaclass_getClassObject(L);
|
|
if lua_gettop(L)=2 then
|
|
begin
|
|
v:=Lua_ToString(L,1);
|
|
dataset.FieldValues[v]:=lua_tovariant(L,2);
|
|
end;
|
|
end;
|
|
|
|
function dataset_getFilterOptions(L: Plua_State): integer; cdecl;
|
|
var ti: PTypeInfo;
|
|
begin
|
|
ti:=typeinfo(TFilterOptions);
|
|
|
|
lua_pushstring(L, SetToString(ti, integer(tdataset(luaclass_getClassObject(L)).FilterOptions),true));
|
|
result:=1;
|
|
end;
|
|
|
|
function dataset_setFilterOptions(L: Plua_State): integer; cdecl;
|
|
var ti: PTypeInfo;
|
|
begin
|
|
ti:=typeinfo(TFilterOptions);
|
|
|
|
tdataset(luaclass_getClassObject(L)).FilterOptions:=TFilterOptions(StringToSet(ti,Lua_ToString(L,1)));
|
|
result:=0;
|
|
end;
|
|
|
|
function dataset_getActive(L: Plua_State): integer; cdecl;
|
|
begin
|
|
lua_pushboolean(L, tdataset(luaclass_getClassObject(L)).Active);
|
|
result:=1;
|
|
end;
|
|
|
|
function dataset_setActive(L: Plua_State): integer; cdecl;
|
|
begin
|
|
result:=0;
|
|
tdataset(luaclass_getClassObject(L)).Active:=lua_toboolean(L,1);
|
|
end;
|
|
|
|
function dataset_getAutoCalcFields(L: Plua_State): integer; cdecl;
|
|
begin
|
|
lua_pushboolean(L, tdataset(luaclass_getClassObject(L)).AutoCalcFields);
|
|
result:=1;
|
|
end;
|
|
|
|
function dataset_setAutoCalcFields(L: Plua_State): integer; cdecl;
|
|
begin
|
|
result:=0;
|
|
tdataset(luaclass_getClassObject(L)).AutoCalcFields:=lua_toboolean(L,1);
|
|
end;
|
|
|
|
function dataset_append(L: Plua_State): integer; cdecl;
|
|
begin
|
|
tdataset(luaclass_getClassObject(L)).Append;
|
|
result:=0;
|
|
end;
|
|
|
|
function dataset_cancel(L: Plua_State): integer; cdecl;
|
|
begin
|
|
tdataset(luaclass_getClassObject(L)).cancel;
|
|
result:=0;
|
|
end;
|
|
|
|
function dataset_checkBrowseMode(L: Plua_State): integer; cdecl;
|
|
begin
|
|
tdataset(luaclass_getClassObject(L)).CheckBrowseMode;
|
|
result:=0;
|
|
end;
|
|
|
|
function dataset_clearFields(L: Plua_State): integer; cdecl;
|
|
begin
|
|
tdataset(luaclass_getClassObject(L)).ClearFields;
|
|
result:=0;
|
|
end;
|
|
|
|
function dataset_close(L: Plua_State): integer; cdecl;
|
|
begin
|
|
tdataset(luaclass_getClassObject(L)).Close;
|
|
result:=0;
|
|
end;
|
|
|
|
function dataset_controlsDisabled(L: Plua_State): integer; cdecl;
|
|
begin
|
|
lua_pushboolean(L, tdataset(luaclass_getClassObject(L)).ControlsDisabled);
|
|
result:=1;
|
|
end;
|
|
|
|
function dataset_cursorPosChanged(L: Plua_State): integer; cdecl;
|
|
begin
|
|
tdataset(luaclass_getClassObject(L)).CursorPosChanged;
|
|
result:=0;
|
|
end;
|
|
|
|
function dataset_delete(L: Plua_State): integer; cdecl;
|
|
begin
|
|
tdataset(luaclass_getClassObject(L)).Delete;
|
|
result:=0;
|
|
end;
|
|
|
|
function dataset_disableControls(L: Plua_State): integer; cdecl;
|
|
begin
|
|
tdataset(luaclass_getClassObject(L)).DisableControls;
|
|
result:=0;
|
|
end;
|
|
|
|
function dataset_edit(L: Plua_State): integer; cdecl;
|
|
begin
|
|
tdataset(luaclass_getClassObject(L)).Edit;
|
|
result:=0;
|
|
end;
|
|
|
|
function dataset_enableControls(L: Plua_State): integer; cdecl;
|
|
begin
|
|
tdataset(luaclass_getClassObject(L)).EnableControls;
|
|
result:=0;
|
|
end;
|
|
|
|
function dataset_fieldByName(L: Plua_State): integer; cdecl;
|
|
begin
|
|
luaclass_newClass(L, tdataset(luaclass_getClassObject(L)).FieldByName(lua_tostring(L,1)));
|
|
result:=1;
|
|
end;
|
|
|
|
function dataset_findField(L: Plua_State): integer; cdecl;
|
|
begin
|
|
luaclass_newClass(L, tdataset(luaclass_getClassObject(L)).FindField(lua_tostring(L,1)));
|
|
result:=1;
|
|
end;
|
|
|
|
function dataset_findFirst(L: Plua_State): integer; cdecl;
|
|
begin
|
|
lua_pushboolean(L, tdataset(luaclass_getClassObject(L)).FindFirst);
|
|
result:=1;
|
|
end;
|
|
|
|
function dataset_findLast(L: Plua_State): integer; cdecl;
|
|
begin
|
|
lua_pushboolean(L, tdataset(luaclass_getClassObject(L)).FindLast);
|
|
result:=1;
|
|
end;
|
|
|
|
function dataset_findNext(L: Plua_State): integer; cdecl;
|
|
begin
|
|
lua_pushboolean(L, tdataset(luaclass_getClassObject(L)).FindNext);
|
|
result:=1;
|
|
end;
|
|
|
|
function dataset_findPrior(L: Plua_State): integer; cdecl;
|
|
begin
|
|
lua_pushboolean(L, tdataset(luaclass_getClassObject(L)).FindPrior);
|
|
result:=1;
|
|
end;
|
|
|
|
function dataset_first(L: Plua_State): integer; cdecl;
|
|
begin
|
|
tdataset(luaclass_getClassObject(L)).First;
|
|
result:=0;
|
|
end;
|
|
|
|
function dataset_insert(L: Plua_State): integer; cdecl;
|
|
begin
|
|
tdataset(luaclass_getClassObject(L)).Insert;
|
|
result:=0;
|
|
end;
|
|
|
|
function dataset_isEmpty(L: Plua_State): integer; cdecl;
|
|
begin
|
|
lua_pushboolean(L, tdataset(luaclass_getClassObject(L)).IsEmpty);
|
|
result:=1;
|
|
end;
|
|
|
|
function dataset_last(L: Plua_State): integer; cdecl;
|
|
begin
|
|
tdataset(luaclass_getClassObject(L)).last;
|
|
result:=0;
|
|
end;
|
|
|
|
function dataset_locate(L: Plua_State): integer; cdecl;
|
|
begin
|
|
lua_pushboolean(L, tdataset(luaclass_getClassObject(L)).Locate(Lua_ToString(L,1), lua_tovariant(L,2), TLocateOptions(StringToSet(PTypeInfo(typeinfo(TLocateOptions)),lua_tovariant(L,3)))));
|
|
result:=1;
|
|
end;
|
|
|
|
function dataset_lookup(L: Plua_State): integer; cdecl;
|
|
begin
|
|
lua_pushvariant(L, tdataset(luaclass_getClassObject(L)).Lookup(Lua_ToString(L,1), lua_tovariant(L,2), lua_tostring(L,3)));
|
|
result:=1;
|
|
end;
|
|
|
|
function dataset_moveBy(L: Plua_State): integer; cdecl;
|
|
begin
|
|
lua_pushinteger(L, tdataset(luaclass_getClassObject(L)).MoveBy(lua_tointeger(L,1)));
|
|
result:=1;
|
|
end;
|
|
|
|
function dataset_next(L: Plua_State): integer; cdecl;
|
|
begin
|
|
tdataset(luaclass_getClassObject(L)).next;
|
|
result:=0;
|
|
end;
|
|
|
|
function dataset_open(L: Plua_State): integer; cdecl;
|
|
begin
|
|
tdataset(luaclass_getClassObject(L)).open;
|
|
result:=0;
|
|
end;
|
|
|
|
function dataset_post(L: Plua_State): integer; cdecl;
|
|
begin
|
|
tdataset(luaclass_getClassObject(L)).post;
|
|
result:=0;
|
|
end;
|
|
|
|
function dataset_prior(L: Plua_State): integer; cdecl;
|
|
begin
|
|
tdataset(luaclass_getClassObject(L)).prior;
|
|
result:=0;
|
|
end;
|
|
|
|
function dataset_refresh(L: Plua_State): integer; cdecl;
|
|
begin
|
|
tdataset(luaclass_getClassObject(L)).refresh;
|
|
result:=0;
|
|
end;
|
|
|
|
function dataset_updateCursorPos(L: Plua_State): integer; cdecl;
|
|
begin
|
|
tdataset(luaclass_getClassObject(L)).UpdateCursorPos;
|
|
result:=0;
|
|
end;
|
|
|
|
function dataset_updateRecord(L: Plua_State): integer; cdecl;
|
|
begin
|
|
tdataset(luaclass_getClassObject(L)).UpdateRecord;
|
|
result:=0;
|
|
end;
|
|
|
|
procedure dataset_addMetaData(L: PLua_state; metatable: integer; userdata: integer );
|
|
begin
|
|
component_addMetaData(L, metatable, userdata);
|
|
|
|
luaclass_addPropertyToTable(L, metatable, userdata, 'BlockReadSize', dataset_getBlockReadSize, dataset_setBlockReadSize);
|
|
luaclass_addPropertyToTable(L, metatable, userdata, 'BOF', dataset_getBOF, nil);
|
|
luaclass_addPropertyToTable(L, metatable, userdata, 'CanModify', dataset_getCanModify, nil);
|
|
luaclass_addPropertyToTable(L, metatable, userdata, 'DefaultFields', dataset_getDefaultFields, nil);
|
|
luaclass_addPropertyToTable(L, metatable, userdata, 'EOF', dataset_getEOF, nil);
|
|
|
|
luaclass_addPropertyToTable(L, metatable, userdata, 'FieldCount', dataset_getFieldCount, nil);
|
|
luaclass_addPropertyToTable(L, metatable, userdata, 'Fields', dataset_getFields, nil);
|
|
luaclass_addPropertyToTable(L, metatable, userdata, 'Found', dataset_getFound, nil);
|
|
luaclass_addPropertyToTable(L, metatable, userdata, 'Modified', dataset_getModified, nil);
|
|
luaclass_addPropertyToTable(L, metatable, userdata, 'IsUniDirectional', dataset_getIsUniDirectional, nil);
|
|
luaclass_addPropertyToTable(L, metatable, userdata, 'RecordCount', dataset_getRecordCount, nil);
|
|
luaclass_addPropertyToTable(L, metatable, userdata, 'RecNo', dataset_getRecNo, dataset_setRecNo);
|
|
luaclass_addArrayPropertyToTable(L, metatable,userdata,'FieldValues',dataset_getFieldValues, dataset_setFieldValues);
|
|
luaclass_addPropertyToTable(L, metatable, userdata, 'Filter', dataset_getFilter, dataset_setFilter);
|
|
luaclass_addPropertyToTable(L, metatable, userdata, 'Filtered', dataset_getFiltered, dataset_setFiltered);
|
|
luaclass_addPropertyToTable(L, metatable, userdata, 'FilterOptions', dataset_getFilterOptions, dataset_setFilterOptions);
|
|
luaclass_addPropertyToTable(L, metatable, userdata, 'Active', dataset_getActive, dataset_setActive); //
|
|
luaclass_addPropertyToTable(L, metatable, userdata, 'AutoCalcFields', dataset_getAutoCalcFields, dataset_setAutoCalcFields);
|
|
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'append', dataset_append);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'cancel', dataset_cancel);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'checkBrowseMode', dataset_checkBrowseMode);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'clearFields', dataset_clearFields);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'close', dataset_close);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'controlsDisabled', dataset_controlsDisabled);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'cursorPosChanged', dataset_cursorPosChanged);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'delete', dataset_delete);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'disableControls', dataset_disableControls);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'edit', dataset_edit);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'enableControls', dataset_enableControls);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'fieldByName', dataset_FieldByName);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'findField', dataset_FindField);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'findFirst', dataset_FindFirst);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'findLast', dataset_FindLast);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'findNext', dataset_FindNext);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'findPrior', dataset_FindPrior);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'first', dataset_First);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'insert', dataset_Insert);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'isEmpty', dataset_IsEmpty);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'last', dataset_Last);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'locate', dataset_locate);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'lookup', dataset_lookup);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'moveBy', dataset_moveBy);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'next', dataset_next);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'open', dataset_open);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'post', dataset_post);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'prior', dataset_prior);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'refresh', dataset_refresh);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'updateCursorPos', dataset_updateCursorPos);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'updateRecord', dataset_updateRecord);
|
|
end;
|
|
|
|
function dbdataset_getDatabase(L: Plua_State): integer; cdecl;
|
|
begin
|
|
luaclass_newClass(L, tdbdataset(luaclass_getClassObject(L)).DataBase);
|
|
result:=1;
|
|
end;
|
|
|
|
function dbdataset_setDatabase(L: Plua_State): integer; cdecl;
|
|
begin
|
|
result:=0;
|
|
tdbdataset(luaclass_getClassObject(L)).DataBase:=lua_ToCEUserData(L,1);
|
|
end;
|
|
|
|
function dbdataset_getTransaction(L: Plua_State): integer; cdecl;
|
|
begin
|
|
luaclass_newClass(L, tdbdataset(luaclass_getClassObject(L)).Transaction);
|
|
result:=1;
|
|
end;
|
|
|
|
function dbdataset_setTransaction(L: Plua_State): integer; cdecl;
|
|
begin
|
|
result:=0;
|
|
tdbdataset(luaclass_getClassObject(L)).Transaction:=lua_ToCEUserData(L,1);
|
|
end;
|
|
|
|
|
|
procedure dbdataset_addMetaData(L: PLua_state; metatable: integer; userdata: integer );
|
|
begin
|
|
dataset_addMetaData(L, metatable, userdata);
|
|
luaclass_addPropertyToTable(L, metatable, userdata, 'Database', dbdataset_getDatabase, dbdataset_setDatabase);
|
|
luaclass_addPropertyToTable(L, metatable, userdata, 'Transaction', dbdataset_getTransaction, dbdataset_setTransaction);
|
|
end;
|
|
|
|
procedure custombufdataset_addMetaData(L: PLua_state; metatable: integer; userdata: integer );
|
|
begin
|
|
dbdataset_addMetaData(L, metatable, userdata);
|
|
end;
|
|
|
|
procedure customsqlquery_addMetaData(L: PLua_state; metatable: integer; userdata: integer );
|
|
begin
|
|
custombufdataset_addMetaData(L, metatable, userdata);
|
|
end;
|
|
|
|
|
|
function sqlquery_getSchemaType(L: Plua_State): integer; cdecl;
|
|
begin
|
|
lua_pushstring(L, GetEnumName(typeinfo(TSchemaType), integer(tsqlquery(luaclass_getClassObject(L)).SchemaType)));
|
|
result:=1;
|
|
end;
|
|
|
|
function sqlquery_getStatementType(L: Plua_State): integer; cdecl;
|
|
begin
|
|
lua_pushstring(L, GetEnumName(typeinfo(TStatementType), integer(tsqlquery(luaclass_getClassObject(L)).StatementType)));
|
|
result:=1;
|
|
end;
|
|
|
|
|
|
procedure sqlquery_addMetaData(L: PLua_state; metatable: integer; userdata: integer );
|
|
begin
|
|
customsqlquery_addMetaData(L, metatable, userdata);
|
|
|
|
//TSQLQuery(0).Params;
|
|
luaclass_addPropertyToTable(L, metatable, userdata, 'SchemaType', sqlquery_getSchemaType, nil);
|
|
luaclass_addPropertyToTable(L, metatable, userdata, 'StatementType', sqlquery_getStatementType, nil);
|
|
|
|
|
|
end;
|
|
|
|
function param_getAsBoolean(L: Plua_State): integer; cdecl;
|
|
begin
|
|
lua_pushboolean(L, tparam(luaclass_getClassObject(L)).AsBoolean);
|
|
result:=1;
|
|
end;
|
|
|
|
function param_setAsBoolean(L: Plua_State): integer; cdecl;
|
|
begin
|
|
tparam(luaclass_getClassObject(L)).AsBoolean:=lua_toboolean(L,1);
|
|
result:=0;
|
|
end;
|
|
|
|
function param_getAsByteTable(L: Plua_State): integer; cdecl;
|
|
var tb: Tbytes;
|
|
begin
|
|
tb:=tparam(luaclass_getClassObject(L)).AsBytes;
|
|
LuaByteTable.CreateByteTableFromPointer(L, @tb[0], length(tb));
|
|
result:=1;
|
|
end;
|
|
|
|
function param_setAsByteTable(L: Plua_State): integer; cdecl;
|
|
var
|
|
maxsize: integer;
|
|
tb: Tbytes;
|
|
begin
|
|
maxsize:=lua_objlen(l, 1);
|
|
setlength(tb, maxsize);
|
|
LuaByteTable.readBytesFromTable(L,1,@tb[0],maxsize);
|
|
tparam(luaclass_getClassObject(L)).AsBytes:=tb;
|
|
|
|
result:=0;
|
|
end;
|
|
|
|
function param_getAsInteger(L: Plua_State): integer; cdecl;
|
|
begin
|
|
lua_pushInteger(L, tparam(luaclass_getClassObject(L)).AsInteger);
|
|
result:=1;
|
|
end;
|
|
|
|
function param_setAsInteger(L: Plua_State): integer; cdecl;
|
|
begin
|
|
tparam(luaclass_getClassObject(L)).AsInteger:=lua_toInteger(L,1);
|
|
result:=0;
|
|
end;
|
|
|
|
function param_getAsNumber(L: Plua_State): integer; cdecl;
|
|
begin
|
|
lua_pushNumber(L, tparam(luaclass_getClassObject(L)).AsFloat);
|
|
result:=1;
|
|
end;
|
|
|
|
function param_setAsNumber(L: Plua_State): integer; cdecl;
|
|
begin
|
|
tparam(luaclass_getClassObject(L)).AsFloat:=lua_toNumber(L,1);
|
|
result:=0;
|
|
end;
|
|
|
|
function param_getAsString(L: Plua_State): integer; cdecl;
|
|
begin
|
|
lua_pushString(L, tparam(luaclass_getClassObject(L)).AsString);
|
|
result:=1;
|
|
end;
|
|
|
|
function param_setAsString(L: Plua_State): integer; cdecl;
|
|
begin
|
|
tparam(luaclass_getClassObject(L)).AsString:=lua_toString(L,1);
|
|
result:=0;
|
|
end;
|
|
|
|
function param_getText(L: Plua_State): integer; cdecl;
|
|
begin
|
|
lua_pushString(L, tparam(luaclass_getClassObject(L)).Text);
|
|
result:=1;
|
|
end;
|
|
|
|
function param_setText(L: Plua_State): integer; cdecl;
|
|
begin
|
|
tparam(luaclass_getClassObject(L)).Text:=lua_toString(L,1);
|
|
result:=0;
|
|
end;
|
|
|
|
function param_isNull(L: Plua_State): integer; cdecl;
|
|
begin
|
|
lua_pushboolean(L, tparam(luaclass_getClassObject(L)).IsNull);
|
|
result:=1;
|
|
end;
|
|
|
|
function params_addParam(L: Plua_State): integer; cdecl;
|
|
begin
|
|
tparams(luaclass_getClassObject(L)).AddParam(tparam(lua_ToCEUserData(L,1)));
|
|
result:=0;
|
|
end;
|
|
|
|
function params_getItem(L: PLua_State): integer; cdecl;
|
|
var
|
|
params: TParams;
|
|
index: integer;
|
|
begin
|
|
result:=0;
|
|
params:=luaclass_getClassObject(L);
|
|
if lua_gettop(L)>=1 then
|
|
begin
|
|
index:=lua_toInteger(L,1);
|
|
luaclass_newClass(L, params.Items[index]);
|
|
result:=1;
|
|
end;
|
|
end;
|
|
|
|
function params_setItem(L: PLua_State): integer; cdecl;
|
|
var
|
|
params: TParams;
|
|
index: integer;
|
|
begin
|
|
result:=0;
|
|
params:=luaclass_getClassObject(L);
|
|
if lua_gettop(L)=2 then
|
|
begin
|
|
index:=lua_toInteger(L,1);
|
|
params.Items[index]:=lua_ToCEUserData(L,2);
|
|
end;
|
|
end;
|
|
|
|
function field_getAsVariant(L: Plua_State): integer; cdecl;
|
|
begin
|
|
try
|
|
lua_pushvariant(L, tfield(luaclass_getClassObject(L)).Value);
|
|
result:=1;
|
|
except
|
|
on e:exception do
|
|
begin
|
|
lua_pushstring(L,e.message);
|
|
lua_error(L);
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
function field_setAsVariant(L: Plua_State): integer; cdecl;
|
|
begin
|
|
try
|
|
tfield(luaclass_getClassObject(L)).Value:=lua_tovariant(L,1);
|
|
except
|
|
on e:exception do
|
|
begin
|
|
lua_pushstring(L,e.message);
|
|
lua_error(L);
|
|
end;
|
|
end;
|
|
result:=0;
|
|
end;
|
|
|
|
function field_getDataType(L: Plua_State): integer; cdecl;
|
|
begin
|
|
lua_pushstring(L, GetEnumName(typeinfo(TFieldType), integer(tfield(luaclass_getClassObject(L)).DataType)));
|
|
result:=1;
|
|
end;
|
|
|
|
function field_getSize(L: Plua_State): integer; cdecl;
|
|
begin
|
|
lua_pushInteger(L, tfield(luaclass_getClassObject(L)).Size);
|
|
result:=1;
|
|
end;
|
|
|
|
function field_setSize(L: Plua_State): integer; cdecl;
|
|
begin
|
|
tfield(luaclass_getClassObject(L)).Size:=lua_toInteger(L,1);
|
|
result:=0;
|
|
end;
|
|
|
|
|
|
function field_getAsBoolean(L: Plua_State): integer; cdecl;
|
|
begin
|
|
lua_pushboolean(L, tfield(luaclass_getClassObject(L)).AsBoolean);
|
|
result:=1;
|
|
end;
|
|
|
|
function field_setAsBoolean(L: Plua_State): integer; cdecl;
|
|
begin
|
|
tfield(luaclass_getClassObject(L)).AsBoolean:=lua_toboolean(L,1);
|
|
result:=0;
|
|
end;
|
|
|
|
function field_getAsByteTable(L: Plua_State): integer; cdecl;
|
|
var tb: Tbytes;
|
|
begin
|
|
tb:=tfield(luaclass_getClassObject(L)).AsBytes;
|
|
LuaByteTable.CreateByteTableFromPointer(L, @tb[0], length(tb));
|
|
result:=1;
|
|
end;
|
|
|
|
function field_setAsByteTable(L: Plua_State): integer; cdecl;
|
|
var
|
|
maxsize: integer;
|
|
tb: Tbytes;
|
|
begin
|
|
maxsize:=lua_objlen(l, 1);
|
|
setlength(tb, maxsize);
|
|
LuaByteTable.readBytesFromTable(L,1,@tb[0],maxsize);
|
|
tfield(luaclass_getClassObject(L)).AsBytes:=tb;
|
|
|
|
result:=0;
|
|
end;
|
|
|
|
function field_getAsInteger(L: Plua_State): integer; cdecl;
|
|
begin
|
|
lua_pushInteger(L, tfield(luaclass_getClassObject(L)).AsInteger);
|
|
result:=1;
|
|
end;
|
|
|
|
function field_setAsInteger(L: Plua_State): integer; cdecl;
|
|
begin
|
|
tfield(luaclass_getClassObject(L)).AsInteger:=lua_toInteger(L,1);
|
|
result:=0;
|
|
end;
|
|
|
|
function field_getAsNumber(L: Plua_State): integer; cdecl;
|
|
begin
|
|
lua_pushNumber(L, tfield(luaclass_getClassObject(L)).AsFloat);
|
|
result:=1;
|
|
end;
|
|
|
|
function field_setAsNumber(L: Plua_State): integer; cdecl;
|
|
begin
|
|
tfield(luaclass_getClassObject(L)).AsFloat:=lua_toNumber(L,1);
|
|
result:=0;
|
|
end;
|
|
|
|
function field_getAsString(L: Plua_State): integer; cdecl;
|
|
begin
|
|
lua_pushString(L, tfield(luaclass_getClassObject(L)).AsString);
|
|
result:=1;
|
|
end;
|
|
|
|
function field_setAsString(L: Plua_State): integer; cdecl;
|
|
begin
|
|
tfield(luaclass_getClassObject(L)).AsString:=lua_toString(L,1);
|
|
result:=0;
|
|
end;
|
|
|
|
function field_getText(L: Plua_State): integer; cdecl;
|
|
begin
|
|
lua_pushString(L, tfield(luaclass_getClassObject(L)).Text);
|
|
result:=1;
|
|
end;
|
|
|
|
function field_setText(L: Plua_State): integer; cdecl;
|
|
begin
|
|
tfield(luaclass_getClassObject(L)).Text:=lua_toString(L,1);
|
|
result:=0;
|
|
end;
|
|
|
|
function field_isNull(L: Plua_State): integer; cdecl;
|
|
begin
|
|
lua_pushboolean(L, tfield(luaclass_getClassObject(L)).IsNull);
|
|
result:=1;
|
|
end;
|
|
|
|
|
|
procedure field_addMetaData(L: PLua_state; metatable: integer; userdata: integer );
|
|
begin
|
|
component_addMetaData(L, metatable, userdata);
|
|
luaclass_addPropertyToTable(L, metatable, userdata, 'Value', field_getAsVariant, field_setAsVariant);
|
|
luaclass_addPropertyToTable(L, metatable, userdata, 'DataType', field_getDataType, nil);
|
|
luaclass_addPropertyToTable(L, metatable, userdata, 'Size', field_getSize, field_setSize);
|
|
|
|
luaclass_addPropertyToTable(L, metatable, userdata, 'AsBoolean', field_getAsBoolean, field_setAsBoolean);
|
|
luaclass_addPropertyToTable(L, metatable, userdata, 'AsByteTable', field_getAsByteTable, field_setAsByteTable);
|
|
luaclass_addPropertyToTable(L, metatable, userdata, 'AsInteger', field_getAsInteger, field_setAsInteger);
|
|
luaclass_addPropertyToTable(L, metatable, userdata, 'AsNumber', field_getAsNumber, field_setAsNumber);
|
|
luaclass_addPropertyToTable(L, metatable, userdata, 'AsString', field_getAsString, field_setAsString);
|
|
luaclass_addPropertyToTable(L, metatable, userdata, 'Text', field_getText, field_setText);
|
|
luaclass_addPropertyToTable(L, metatable, userdata, 'IsNull', field_isNull, nil);
|
|
end;
|
|
|
|
|
|
procedure params_addMetaData(L: PLua_state; metatable: integer; userdata: integer );
|
|
begin
|
|
collection_addMetaData(L, metatable, userdata);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'addParam', params_addParam);
|
|
luaclass_addArrayPropertyToTable(L, metatable, userdata, 'Items', params_getItem, params_setItem);
|
|
luaclass_setDefaultArrayProperty(L, metatable, userdata, params_getItem, params_setItem);
|
|
end;
|
|
|
|
|
|
|
|
procedure param_addMetaData(L: PLua_state; metatable: integer; userdata: integer );
|
|
begin
|
|
collectionItem_addMetaData(L, metatable, userdata);
|
|
|
|
luaclass_addPropertyToTable(L, metatable, userdata, 'AsBoolean', param_getAsBoolean, param_setAsBoolean);
|
|
luaclass_addPropertyToTable(L, metatable, userdata, 'AsByteTable', param_getAsByteTable, param_setAsByteTable);
|
|
luaclass_addPropertyToTable(L, metatable, userdata, 'AsInteger', param_getAsInteger, param_setAsInteger);
|
|
luaclass_addPropertyToTable(L, metatable, userdata, 'AsNumber', param_getAsNumber, param_setAsNumber);
|
|
luaclass_addPropertyToTable(L, metatable, userdata, 'AsString', param_getAsString, param_setAsString);
|
|
luaclass_addPropertyToTable(L, metatable, userdata, 'Text', param_getText, param_setText);
|
|
luaclass_addPropertyToTable(L, metatable, userdata, 'IsNull', param_isNull, nil);
|
|
end;
|
|
|
|
procedure dbtransaction_addMetaData(L: PLua_state; metatable: integer; userdata: integer );
|
|
begin
|
|
component_addMetaData(L, metatable, userdata);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'closeDataSets', dbtransaction_closeDataSets);
|
|
luaclass_addPropertyToTable(L, metatable, userdata, 'DataBase', dbtransaction_getDataBase, dbtransaction_setDataBase);
|
|
end;
|
|
|
|
|
|
procedure sqltransaction_addMetaData(L: PLua_state; metatable: integer; userdata: integer );
|
|
begin
|
|
dbtransaction_addMetaData(L, metatable, userdata);
|
|
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'commit', sqltransaction_commit);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'commitRetaining', sqltransaction_commitRetaining);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'rollback', sqltransaction_rollback);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'rollbackRetaining', sqltransaction_rollbackRetaining);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'startTransaction', sqltransaction_startTransaction);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'endTransaction', sqltransaction_endTransaction);
|
|
|
|
luaclass_addPropertyToTable(L, metatable, userdata, 'SQLConnection', dbtransaction_getDataBase, dbtransaction_setDataBase); //not a mistake. sqlconnection is the database
|
|
end;
|
|
|
|
procedure customconnection_addMetaData(L: PLua_state; metatable: integer; userdata: integer );
|
|
begin
|
|
component_addMetaData(L, metatable, userdata);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'open', customconnection_open);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'close', customconnection_close);
|
|
end;
|
|
|
|
procedure database_addMetaData(L: PLua_state; metatable: integer; userdata: integer );
|
|
begin
|
|
customconnection_addMetaData(L, metatable, userdata);
|
|
luaclass_addPropertyToTable(L, metatable, userdata, 'TransactionCount', database_getTransactionCount, nil);
|
|
end;
|
|
|
|
|
|
procedure sqlconnection_addMetaData(L: PLua_state; metatable: integer; userdata: integer );
|
|
begin
|
|
database_addMetaData(L, metatable, userdata);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'startTransaction', sqlconnection_startTransaction);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'endTransaction', sqlconnection_endTransaction);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'executeDirect', sqlconnection_executeDirect);
|
|
end;
|
|
|
|
procedure odbcconnection_addMetaData(L: PLua_state; metatable: integer; userdata: integer );
|
|
begin
|
|
sqlconnection_addMetaData(L, metatable, userdata);
|
|
// TODBCConnection(0);
|
|
end;
|
|
|
|
procedure sqlite3connection_addMetaData(L: PLua_state; metatable: integer; userdata: integer );
|
|
begin
|
|
sqlconnection_addMetaData(L, metatable, userdata);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'createDB', sqlite3connection_createDB);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'dropDB', sqlite3connection_dropDB);
|
|
luaclass_addClassFunctionToTable(L, metatable, userdata, 'getInsertID', sqlite3connection_getInsertID);
|
|
|
|
end;
|
|
|
|
|
|
procedure initializeLuaSQL;
|
|
begin
|
|
lua_register(LuaVM, 'createSQLite3Connection', createSQLite3Connection);
|
|
lua_register(LuaVM, 'createODBCConnection', createODBCConnection);
|
|
lua_register(LuaVM, 'createSQLTransaction', createSQLTransaction);
|
|
lua_register(LuaVM, 'setSQLiteLibraryName', setSQLiteLibraryName);
|
|
|
|
end;
|
|
|
|
initialization
|
|
{$ifdef cpu64}
|
|
SQLiteLibraryName:='.\win64\sqlite3.dll';
|
|
{$else}
|
|
SQLiteLibraryName:='.\win32\sqlite3.dll';
|
|
{$endif}
|
|
luaclass_register(TODBCConnection, odbcconnection_addMetaData);
|
|
luaclass_register(TSQLite3Connection, sqlite3connection_addMetaData);
|
|
luaclass_register(TSQLConnection, sqlconnection_addMetaData);
|
|
luaclass_register(TDatabase, database_addMetaData);
|
|
luaclass_register(TCustomConnection, customconnection_addMetaData);
|
|
luaclass_register(TSQLTransaction, sqltransaction_addMetaData);
|
|
luaclass_register(TDBTransaction, dbtransaction_addMetaData);
|
|
|
|
luaclass_register(TSQLQuery, sqlquery_addMetaData);
|
|
luaclass_register(TCustomSQLQuery, customsqlquery_addMetaData);
|
|
luaclass_register(TCustomBufDataset, custombufdataset_addMetaData);
|
|
luaclass_register(TDBDataSet, dbdataset_addMetaData);
|
|
luaclass_register(TDataset, dataset_addMetaData);
|
|
|
|
luaclass_register(TParam, param_addMetaData);
|
|
luaclass_register(TParams, params_addMetaData);
|
|
|
|
|
|
|
|
|
|
registerclass(TSQLConnection);
|
|
registerclass(TSQLite3Connection);
|
|
registerclass(TODBCConnection);
|
|
registerclass(TSQLTransaction);
|
|
registerclass(TSQLQuery);
|
|
end.
|
|
|