Index: packages/fcl-db/src/sqldb/sqlite/sqlite3conn.pp
===================================================================
--- packages/fcl-db/src/sqldb/sqlite/sqlite3conn.pp	(revision 19599)
+++ packages/fcl-db/src/sqldb/sqlite/sqlite3conn.pp	(working copy)
@@ -89,6 +89,7 @@
     constructor Create(AOwner : TComponent); override;
     function GetInsertID: int64;
     procedure GetFieldNames(const TableName : string; List :  TStrings); override;
+    procedure LoadExtension(LibraryFile: string);
   published
     property Options: TSqliteOptions read FOptions write SetOptions;
   end;
@@ -883,6 +884,24 @@
   GetDBInfo(stColumns,TableName,'name',List);
 end;
 
+procedure Tsqlite3connection.LoadExtension(Libraryfile: String);
+var
+  LoadResult: integer;
+begin
+  CheckConnected; //Apparently we need a connection before we can load extensions.
+  try
+    LoadResult:=SQLITE_ERROR; //Default to failed
+    sqlite3_enable_load_extension(fhandle, 1); //Make sure we are allowed to load
+    LoadResult:=sqlite3_load_extension(fhandle, PChar(LibraryFile), nil, nil); //Actually load extension
+    if LoadResult=SQLITE_ERROR then
+      begin
+      DatabaseError('LoadExtension: failed to load SQLite extension (SQLite returned an error while loading).',Self);
+      end;
+  except
+    DatabaseError('LoadExtension: failed to load SQLite extension.',Self);
+  end;
+end;
+
 procedure TSQLite3Connection.setoptions(const avalue: tsqliteoptions);
 begin
  if avalue <> foptions then 
