* Implement LastInsertRowId

git-svn-id: trunk@14220 -
This commit is contained in:
blikblum 2009-11-20 00:52:26 +00:00
parent e5ebb2a26e
commit 9e44456f81
3 changed files with 14 additions and 0 deletions

View File

@ -150,6 +150,7 @@ type
function SqliteExec(Sql: PChar; ACallback: TSqliteCdeclCallback; Data: Pointer): Integer; virtual; abstract;
procedure InternalCloseHandle; virtual; abstract;
function InternalGetHandle: Pointer; virtual; abstract;
function GetLastInsertRowId: Int64; virtual; abstract;
procedure GetSqliteHandle;
procedure BuildLinkedList; virtual; abstract;
procedure FreeItem(AItem: PDataRecord);
@ -238,6 +239,7 @@ type
property ExpectedUpdates: Integer write SetExpectedUpdates;
property ExpectedDeletes: Integer write SetExpectedDeletes;
property IndexFields[Value: Integer]: TField read GetIndexFields;
property LastInsertRowId: Int64 read GetLastInsertRowId;
property RowsAffected: Integer read GetRowsAffected;
property ReturnCode: Integer read FReturnCode;
property SqliteHandle: Pointer read FSqliteHandle;

View File

@ -46,6 +46,7 @@ type
TSqlite3Dataset = class(TCustomSqliteDataset)
protected
procedure BuildLinkedList; override;
function GetLastInsertRowId: Int64; override;
function GetRowsAffected:Integer; override;
procedure InternalCloseHandle; override;
function InternalGetHandle: Pointer; override;
@ -322,6 +323,11 @@ begin
FBeginItem^.Row[Counter] := nil;
end;
function TSqlite3Dataset.GetLastInsertRowId: Int64;
begin
Result := sqlite3_last_insert_rowid(FSqliteHandle);
end;
function TSqlite3Dataset.ReturnString: String;
begin
Result := SqliteCode2Str(FReturnCode) + ' - ' + sqlite3_errmsg(FSqliteHandle);

View File

@ -48,6 +48,7 @@ type
function GetSqliteEncoding: String;
protected
procedure BuildLinkedList; override;
function GetLastInsertRowId: Int64; override;
function GetRowsAffected:Integer; override;
function InternalGetHandle: Pointer; override;
procedure InternalCloseHandle; override;
@ -275,6 +276,11 @@ begin
FBeginItem^.Row[Counter] := nil;
end;
function TSqliteDataset.GetLastInsertRowId: Int64;
begin
Result := sqlite_last_insert_rowid(FSqliteHandle);
end;
function TSqliteDataset.ReturnString: String;
begin
case FReturnCode of