Just did a test with Zeos.
It works with Zeos, the text field is a TMemoField now with no Limit
Regards,
Pascal
You are not logged in. Please login or register.
SQLitePass Forum - Powered by PunBB » Posts by pcoenen
Pages 1
Just did a test with Zeos.
It works with Zeos, the text field is a TMemoField now with no Limit
Regards,
Pascal
SQLitePass 0.5
Delphi 2010
Trying to use a text field.
- Created database with text field
- using SQLitePassDataset
- This text field is visible in the fields editer as a TWideStringField but the Size has a limit of 30 chars
Why 30 chars, it's a text field. I can't change it, this fields is fixed on 30.
Regards,
Pascal
Hi Luc,
Another thing about the options:
Suppose I set some options when the database isn't connected (synchronous, cache size, ..). If I connect then the SQLitePass database component should use the options I set using this properties. This isn't the case.
I think this should work like this, it would help users setting up the connection option in an easy way. No we need to do this ourselves using the Pragma commands. Not every one knows this.
Regards,
Pascal
Test 2:
1000 appends (Test Table with 3 Fields: 1xText, 1xINT64, 1XInteger)
Synchronous mode:
- Off: 3 seconds
- Normal: 10 seconds
- FULL: 8 seconds
Test 3:
Just did an extra test comparing the speed of your components with ZeosLib components. +/- the same speed.
Regards,
Pascal
Some extra work :(
- No GetSetFCaseSensitiveLike Function, Option is always True in db component properties
- SQLiteLibrary is not saved in db component properties
- When I create a database (using your db component) then the case_sensitive_like option is True when I look in the options of the connected database component. This should be False (False is the default in SQLite).
Regards,
Pascal
Luc,
I've already done some tests. The speed is about 1000 appends in 8 seconds. That's 8 ms for each append.
I've posted these results on a dutch delphi site called NLDelphi:
http://www.nldelphi.com/Forum/showthread.php?t=35638
Reply from Marcov: 8 ms is the typ. speed of the hard disk.
So I need to change the SQLite synchronize option and do a new test. I'll let you know the result.
Regards,
Pascal
Suggest : I could extend the syntax to include dtQuery -> if DatasetType in [dtTable, dtQuery, dtSQLSelect] ?
When NOT called directly from the current dataset but from Database.TableDefs, the data will NOT be refreshed automatically (because you shouldn't be working on or displaying data from the table you want to empty...)
Good idea
Hi Luc,
Does it make sense to you or do you think the refresh should be automatically applied ?
No, this is fine. I just don't understand why the boolean var FRefetchRows is set. Do you use this somewhere? I didn't found it.
Regards,
Pascal
Hi,
An example. I place a TSQLiteDatabase component on a form. Looking at the Options property I noticed that these are strange settings meaning not the default of SQLite. For example Synchronous is set Off but the default of SQLIte is FULL.
Also when I use CreateDatabase then the settings of this new created database are different. The options are not all used when creating the database. Is this correct?
Regards,
Pascal
Hi,
Using Delphi 2010 and SQLitePass 0.50. This is what I do:
- Start Delphi 2010 en reopen my test project containing TSQLitePassDatabase and TSQLitePassDataset (Properties of TSQLiteDatabase are already set).
- Double Click on Connected property of the TSQLItePassDatabase
- Very often the state doesn't change from False to True.
- If it doesn't change then the set the Database property of TSQLiteDatabase again (to the same value).
- Now the state changes if I double click on the Connected property of TSQLiteDatabase.
Best Regards,
Pascal
Hi,
I'm trying to delete all the data in a certain table of SQLite database using a TSqlitePassDataset.
My TSqlitePassDataset is connected to the database and I try to use TSqlitePassDataset.EmptyTable;
Nothing happens until I call TSqlitePassDataset.Refresh. Then the data is deleted. Is this normal. In the code I see that FRefetchRows is set to True after the EmptyTable procedure.
Do we need to do somthing with this FRefetchRows ?
Regards,
Pascal
Hi Luc,
By the way, you don't need to set the SQL statement for the TSqlitePassDataset component since it should be set automatically when you select a table or query via the datasetname property editor.
Thanks. At the moment I'm using the Delphi ClientDataSet as a Memory Dataset. I load it at startup and save it at close application. I want to replace with SQLite database and your components. Why your components:
- Active development
- Compatible Lazarus and Delphi
- Documentation
- (Really Nice) Source Code
At the moment I'm testing inserts and filters to see how fast the combination is.
- First test on a virtual xp machine, an average of 1000 records added in 8 seconds (8ms/record).
I'll be back (I'm sure) with other questions.
Regards,
Pascal
Reason found:
- I've placed a TSQLitePassDataset and set the SQL to
SELECT * FROM [tblFileMemory]
When I try to open the Dataset I get the following error: TSqlitePassDataset.InternalOpen : Cannot Open Dataset.
The database is connected (checked) and assigned using the database property of the TSQLitePassDataset component.
I can't get this simple Select statement to work.
My own fault. I had been playing with the Field Editor. Cleared all fields and now this is ok.
Regards,
Pascal
NEW Info:
I'm creating the database with:
dbSQLite.CreateDatabase('SQLitePassTest.db3', dbtUnknown, UTF16);
Q1. Is dbtUnknown the correct type? Any other type is giving me a warning after the second time that I open the database: Error while loading data from database. The "SqlitePass_DbSettings" table is corrupted or was created using an older version of this component.
This error only occurs when I create the databse with UTF16. It works fine with UTF8
Q2. I'm using UTF16 because delphi 2010 uses this as default string type. Is this correct what I'm doing?
Suppose I create the database with UTF8 .. is this a problem because delphi 2010 strings are UTF16.
Hello,
I installed version 0.50 in Delphi 2010. I playing around with the components and did some reading in the help file. Not all is clear to me and I'm getting warning messages.
Questions:
- I'm creating the database with:
dbSQLite.CreateDatabase('SQLitePassTest.db3', dbtUnknown, UTF16);
Q1. Is dbtUnknown the correct type? Any other type is giving me a warning after the second time that I open the database: Error while loading data from database. The "SqlitePass_DbSettings" table is corrupted or was created using an older version of this component.
Q2. I'm using UTF16 because delphi 2010 uses this as default string type. Is this correct what I'm doing?
- I created a table using the following code, this works fine
With TSqlitePassEngine.Create(dbSQLite) do
begin
Try
OpenDatabase(dbSQLite.Database);
ExecSQL('CREATE TABLE [tblFileMemory] ([Filename] TEXT NULL, [Filesize] INTEGER NULL,[Filedate] INTEGER NULL)');
Finally
CloseDatabase;
Free;
End;
End;
- I've placed a TSQLitePassDataset and set the SQL to
SELECT * FROM [tblFileMemory]
When I try to open the Dataset I get the following error: TSqlitePassDataset.InternalOpen : Cannot Open Dataset.
The database is connected (checked) and assigned using the database property of the TSQLitePassDataset component.
I can't get this simple Select statement to work.
Help appreciated,
Pascal
Pages 1
SQLitePass Forum - Powered by PunBB » Posts by pcoenen
Powered by PunBB, supported by Informer Technologies, Inc.
Currently installed 7 official extensions. Copyright © 2003–2009 PunBB.