Version 0.50 - Last Revision 2010-03-09
The SqlitePass components project planes to provide a easy and fast access to sqlite databases. The Installation packages registers three components in the IDE :
A Database Component (TSqlitePassDatabase)
A Dataset Component (TSqlitePassDataset)
A DBActionList Component (TSqlitePassDBActionList) and associated DbActions dedicated to work on TSqlitePassDataset : TSqlitePassDatasetSortAsc, TSqlitePassDatasetSortDesc, TSqlitePassDatasetSort, TSqlitePassDatasetFilterOnSelection, TSqlitePassDatasetFilter, TSqlitePassDatasetFilterOnOff,TSqlitePassDatasetLocate, TSqlitePassDatasetLocateFirst, TSqlitePassDatasetLocatePrior, TSqlitePassDatasetLocateNext, TSqlitePassDatasetLocateLast.
At the moment, these components support reading from / writing to databases created with :
The Kexi project (for Linux and Windows)
The Sqlite Expert (for Windows)
SQLite Administrator (Database manager for Windows)
Sqlite4Fpc (Database component for FPC)
SqliteToolbox (The demo program included with SqlitePass components, for windows and Linux)
or your own custom sqlite database using Database.DataTypeOptions (TSqlitePassDatabaseDataTypeOptions)
This project is open source, released under LGPL license.
Libraries and components are free and currently tested with Delphi 4 & 6, Delphi 2009 & 2010 - Lazarus 0.9.29 – FPC 2.4.1 From 0.45 version, the components should be "unicode friendly".
The library will not be considered as "stable" until the 1.0 release. Let me know in you want to use those components with other Delphi versions.
sqlite3_column_database_name
sqlite3_column_database_name16
sqlite3_column_table_name
sqlite3_column_table_name16
sqlite3_column_origin_name
sqlite3_column_origin_name16
sqlite3_table_column_metadata
The compiled win32 (sqlitepass3.dll) and the Linux-i386 (libsqlitepass3.so) versions of this library are included in ..\SQLitePass\SqliteLibrary. A tutorial on how to compile the library is available on the SqlitePass website. This file (sqlite3.dll or sqlite3.so) should be placed in a system directory, ..\Windows\system32 for example.
Note : From version 3.6.7, the official standard sqlite library already includes the required functions (tested with windows) and was just renamed to sqlitepass3.dll without any other changes.
Uninstall any previous version of SqlitePassDbo components : Choose [Components] [Install Packages] from IDE menu.
Select the SqlitePass package and click Remove.
Compile Runtime package : Choose [File] [Open] from the IDE menu and select ..\SQLitePass\Packages\Delphi4\D4_SqlitePassDbo_Runtime.dpk. Compile this package and move the resulting file from SQLitePass_vX.XX\Packages\Delphi4\D4_SqlitePassDbo_Runtime.bpl to a directory inluded in the Delphi search path (like ..\Delphi4\Bin or ..\Windows\system32 for example). Delete or overwrite any previous D4_SqlitePassDbo_Runtime.bpl.
Compile and install Designtime package : Choose [File] [Open] from the IDE menu and select ..\SQLitePass\Packages\Delphi4\D4_SqlitePassDbo_Designtime.dpk. Compile this package, then choose install.
Check installation : Select SqlitePassDbo on component palette pages and drop a SqlitePassDatabase and a SqlitePassDataset on a new form. Check the components versions are correct in object inspector.
Uninstall any previous version of SqlitePassDbo components : Choose [Components] [Configure Installed Packages] from IDE menu
Select the Laz_SqlitePassDbo_Runtime and Laz_SqlitePassDbo_Designtime packages and click [Uninstall the selection] then [Save and quit the dialog].
Compile and install Designtime package : Choose [File] [Open] from the IDE menu and select ..\SQLitePass\Packages\Lazarus\Laz_SqlitePassDbo_Designtime.lpk. In package dialog, Choose compile - this way, the Laz_SqlitePassDbo_Runtime will automatically be compiled. Then select install to rebuild the IDE.
Check installation : Select SqlitePassDbo on Component palette pages and drop a SqlitePassDatabase and a SqlitePassDataset on a new form. Check the components versions are correct in object inspector.
The source code is (or will be) self documented and should cover the basic usage of the components.
Place a SqlitePassDatabase component on a form,
Choose Database file the Database property (a database *.kexi file from ..\SQLitePass_x.xx\Demo\Databases for example),
Set Connected property to True,
Place a SqlitePassDataset component on the form
Set Database property to the name of SqlitePassDatabase component (by default this is SqlitePassDatabase1),
Select a dataset from the DatasetName property dialog editor,
Set Active property to True.
Place a standart Delphi or Lazarus DataSource component on the page,
Set DataSet property to the name of the SqlitePassDataset component (by default this is SqlitePassDataset1)
Place any DBAware component like DBGrid, DBNavigator...etc, on the form.
Set DBGrid's, DBNavigator...etc, DataSource property to the name of DataSource component (by default this is DataSource1)
This is it !
/Delphi4
Demo Project files for Delphi 4
/Lazarus
Demo Project files for Lazarus
/Sources
Source files for the demo project.
*.pas files are shared by Delphi and Lazarus projects
*.dfm files are used by Delphi
*.lfm files are used by Lazarus
D4_SqlitePassDbo_Designtime.dpk
Designtime package, used to :
Register and display components in Delphi IDE,
Register property editors in Delphi IDE.
Packages/Delphi6
D6_SqlitePassDbo_Runtime.dpk
Runtime package. Shoul be compiled first (see the installation section)
D6_SqlitePassDbo_Designtime.dpk
Designtime package, used to :
Register and display components in Delphi IDE,
Register property editors in Delphi IDE.
Packages/Delphi7
D7_SqlitePassDbo_Runtime.dpk
Runtime package. Shoul be compiled first (see the installation section)
D7_SqlitePassDbo_Designtime.dpk
Designtime package, used to :
Register and display components in Delphi IDE,
Register property editors in Delphi IDE.
Packages/Packages/Lazarus
Laz_SqlitePassDbo_Runtime.dpk
Runtime package. Shoul be compiled first (see the installation section)
Laz_SqlitePassDbo_Designtime.dpk
Designtime package, used to :
Register and display components in Delphi IDE,
Register property editors in Delphi IDE.
SlitePassDatabase.inc,
SqlitePassDatabaseParts.inc,
SqlitePassDataset..inc,
SqlitePassRecordset.inc,
SqlitePassSelectStmt.inc,
SqlitePassEngine.pas.
SqlitePassDbo.lrs : Lazarus ressource file used to dipslay components icons in IDE. SqlitePassConst.pas : Constant definitions
SqlitePassErrorLang.pas : Ressource strings for language support. To translate this file :
Backup the original file and translate the strings in your own language.
Replace the SqlitePassErrorLang.pas with your own file.
Compile and overwrite any existing runtime package. (see installation section).
Only English file is available so far. A French one will be done shortly. Translators are welcome !
SqlitePassKexiDef.pas : Kexi specific constants definitions SqlitePassUtils.pas : Implements a TObjectList (The code is just a copy from FCL) and other objects, mainly to provide code compatibility between Delphi 4 and Lazarus.
*.pas files are shared by Delphi and Lazarus projects
*.dfm files are used by Delphi
*.lfm and *.lrs files are used by Lazarus
Designtime Editors Files descriptions :
RegisterSqlitePassDbo.pas
Registers and displays components and property editors in IDE.
SqlitePassChooseDatasetDialog.pas
Used by TsqlitePassDataset.Dataset property. Displays an treeview of available dataset in the current database.
SqlitePassIndexedByDialog.pas Used by TsqlitepassDataset.Indexes property. Displays a dialog to manage tables in memory indexes.
SqlitePassIndexesDialog.pas
Used by TsqlitepassDataset.IndexDefs property. Displays a dialog to manage tables indexes.
SqlitePassCustomFieldDefsDialog.pas
Used by TsqlitePassDatabase.DataTypeOptions.CustomFieldDefs property. Display a dialog to manage custom field definitions
SqlitePassFieldDefsDialog.pas
Used by TsqlitepassDataset.FieldDefsInfo property. Display a dialog showing field definitions of the currently selected dataset.
SqlitePassSortByDialog.pas
Used by TsqlitepassDataset.SortedBy property. Displays a dialog to select fields to be sorted .
SqlitePassDataTypesDialog.pas
Used by TsqlitePassDatabase.DataTypeOptions.TranslationRules property. Display a dialog to manage TranslationRules.
SqlitePassMasterDetailFieldsDialog.pas
Used by TsqlitepassDataset.MasterFields property. Displays a dialog to link Master and Detail fields.
SqlitePassDesignErrorLang.pas
Defines DesignTime error messages.
CreateNewIndex.pas
Used by the indexes dialog when creating new table index.
RenameItem.pas
Used by the indexes dialog when renaming a existing table index.