Tuesday, January 30, 2007

SQLiteManager 2.5.5

I have just released SQLiteManager 2.5.5, changes are:
  • Fixed a bug in the Import window
  • Fixed a crash bug that can occurs working on sqlite 2 databases
  • Fixed an issue with the REALSQLServer
  • Fixed a bug in the Favorites module
  • Improved Export, you can now specify an SQL query to execute
  • Added a preference to enable an automatic check for an updated version at startup

There are a couple of other issues to solve related to importing very big files (as both CSV or sql).
I plan to release another version that should address these problems very soon.

SQLite3ProfessionalPlugin no longer for sale within few days...

Due to recent changes in my life it is 99% probable that SQLite3ProfessionalPlugin will be no longer for sale starting from February. I use it in SQLiteManager and in other applications I am developing so it will be constantly updated for registered users, but new user will not be able to purchase it.

If you are interested in its technology then only two days remaining before I'll remove it from my web store.
I'll post more details about what is happened in my life very soon.

Sunday, January 21, 2007

SQLite and unique rowids ... Something you really need to know...

If you don't want to read the whole post then just do this: Every time you create a table with sqlite make sure to have an INTEGER PRIMARY KEY AUTOINCREMENT column (the rowid column will be an alias to this one).

If you have some time then read on...

A lot of people don't realize that a rowid can change (I was part of the group until some time ago). As always a simple example worths more than 1000 words in my bad English :-)
You can test this example with SQLiteManager.

Create a table without a primary key:
CREATE TABLE test (name TEXT);

Insert some data into the table:
INSERT INTO test (name) VALUES ('marco');
INSERT INTO test (name) VALUES ('giuly');
INSERT INTO test (name) VALUES ('gregory');
INSERT INTO test (name) VALUES ('house');

Perform the query SELECT rowid,* FROM test;
Here it is the result:
1 marco
2 giuly
3 gregory
4 house

Everything is fine until this point...
Now delete a couple of rows:
DELETE FROM test WHERE name='marco';
DELETE FROM test WHERE name='gregory';

Now perform again: SELECT rowid,* FROM test;
Here it is the result:
2 giuly
4 house

Everything is fine, no?
That's cool...

Now, perform a VACUUM on the database and run again the query:
SELECT rowid,* FROM test;
Here it is the result:
1 giuly
2 house

Rowids are changed!!!! So please take extra care when you define a table and need to reference records using rowids.
From the official documentation: "Rowids can change at any time and without notice. If you need to depend on your rowid, make it an INTEGER PRIMARY KEY, then it is guaranteed not to change". And I add also AUTOINCREMENT so you are sure that the same rowid(s) are not reused when rows are deleted.

Special thanks to Mike Bailey for pointed out this issue.

Tuesday, January 16, 2007

SQLiteManager 2.5

I have just released SQLiteManager 2.5 with tons of new features:

  • First Universal Binary version
  • Added FIELD.TYPE in reports
  • The email field in bug/crash reporter is now mandatory
  • The Import->Other window now contains an Encoding field that enables you to specify the encoding of the source file
  • Fixed a bug where under certain conditions a field in an sqlite 2 database was not updated
  • Fixed a bug in the Import->Other window where the latest field is the table is not displayed
  • Added PDF as show type in the EditRecord window
  • Added a shortcut to query a table (a contextual menu) directly from the Design panel
  • Greatly improved the CSV importer, it is now much more smart about column names
  • Added the "Relaxed CSV Engine" checkbox in order to workaround to a big amount of malformed or out of standard CSV files
  • Multiple selection is now allowed in the Query panel
  • Fixed a crash that occurs while converting big sqlite2 databases
  • Replaced the old SQLitePluginPro with the new SQLite2ProfessionalPlugin
  • Updated SQLite3ProfessionalPlugin to the latest 2.1.0 version
  • Updated sqlite library to version 3.3.10
  • Updated REALSQLServer plugin to the latest version
  • SQLiteManager can now open databases located on OSX shared volumes
  • Improved error messages in import operations
  • Added support for full-text search and virtual tables (sft1 and stf2 are supported)
  • Added the ability to open encrypted (AES) sqlite 3 database file

Click here to watch some screenshots of the new features:

It is a free upgrade to any 2.x customer. I hope you'll like this version.

Monday, January 15, 2007

SQLite3ProfessionalPlugin 2.1

I have just released SQLite3ProfessionalPlugin 2.1 with a lot of new features and bug fixes.

I am happy to announce that the most requested feature (the ability to open databases located on shared volumes in OSX) is now built-into the plugin. Official changes are:

  • The SQLCachedSelect method now supports in-memory databases as source db
  • Fixed an incorrect behavior (not really a bug) related to the db.Error and db.ErrorCode properties
  • Fixed some bugs in the SQLiteRecordSet classes
  • Fixed a bug that occurs when retrieving BLOB fields using the RB API
  • Updated sqlite library to version 3.3.10 (patch 2)
  • Added support for experimental FT2 module
  • Added support for database located on shared volumes in OSX (beta code)
  • Updated some examples
  • Other small fixes and optimizations

As a direct consequence even the new release of SQLiteManager will be able to open databases located on shared volumes in OSX.

Friday, January 12, 2007

SQLiteManager 2.5

I am finishing the new SQLiteManager 2.5.
It will be a major upgrade that takes me a lot more time of what I have originally planned.
It will contain a lot of improvements and bug fixes and also new features.
It will be an Universal Binary application, it will have expanded preferences, it will be able to open AES encrypted sqlite 3 databases and much more...
I plan to release it next week, probably Monday or Tuesday...

Tuesday, January 09, 2007

My dreams come true

Thanks Apple for this new toy.



I wonder why no one in the world was able to create a product like this, with so many innovations and so much creativity.
It is 4 years ahead any other electronic device out there...

A phone with Mac OS X built-in? My dreams come true... Thanks again Apple.
I'll order it as soon as it will be available.

SQLitePluginPro and SQLite2ProfessionalPlugin

After the introduction of the Universal Binary version of REALbasic, the old SQLitePluginPro plugin (based on sqlite 2) no longer works. I am receiving some requestes from people that need an easy way to convert their old sqlite 2 databases into the new sqlite 3 format in apps written with RB 2005 or higher.

I have written a new SQLite2ProfessionalPlugin plugin (OSX, Win, and Universal Binary) that I think can help a lot of people with their old databases. This plugin isn't sold directly into our store and can only be purchased by old SQLitePluginPro registered user. Price is $99.

If you are interested just drop me a line or contact me on ichat.

Saturday, January 06, 2007

Steal a phrase

I don’t make software just to make money.
I make money to make more software.

The original sentence was from Walt Disney: “I don’t make pictures just to make money. I make money to make more pictures.” Well ... it perfectly represents what I feel.