1

(4 replies, posted in General)

Just did a test with Zeos.

It works with Zeos, the text field is a TMemoField now with no Limit

Regards,
Pascal

2

(4 replies, posted in General)

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

3

(10 replies, posted in General)

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

4

(10 replies, posted in General)

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

5

(4 replies, posted in General)

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

6

(10 replies, posted in General)

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

7

(10 replies, posted in General)

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 smile

8

(10 replies, posted in General)

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

9

(4 replies, posted in General)

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

10

(10 replies, posted in Bug Tracking)

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

11

(10 replies, posted in General)

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

12

(15 replies, posted in General)

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

13

(15 replies, posted in General)

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

14

(15 replies, posted in General)

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.

15

(15 replies, posted in General)

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 smile

  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. sad

Help appreciated,
Pascal