• Welcome to SQLitening Support Forum.


Welcome to the SQLitening support forums!

Main Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Topics - Rolf Brandt

Here is a little tool that I have written for myself to examine SQLite databases  It lists all tables, indexes, triggers, etc. in the database. It also shows all SQL commands that were used to create the database. This is done by reading the sqlite_master table, a system table where SQLite stores its information about the structure of the database.

You can copy the different SQL commands that created the database to the clipboard to use them. You also can quickly create a new empty copy of a database.

SQLite3.dll needs to be on your computer, either in the Windows, System32, or your program folder.

Maybe it is useful for someone else. Comments are welcome. The tool was written in PowerBasic 10 and PlanetSquires FireFly 3 (http://www.planetsquires.com/) as Visual Designer.

General Board / Spam attack
April 05, 2013, 05:16:26 AM
Can this Spam attack be stopped? Could that nonsense be removed?

Attached is a minimum project in VB6.

It uses a modified SQLiteningS.inc renamed to SQLiteningVB6.bas. It needed some modification to be compatible with VB6.

Demonstrated are the following functions:


    Dim SqlExpr As String
    Dim i As Long
    Dim t As String
    SqlExpr = " SELECT rowid as RecNo, * FROM Parts LIMIT 50"
    slsOpen App.Path & "\sample.db3"
    slsSel SqlExpr
    Do While slsGetRow
        For i = 1 To slsGetColumnCount
            t = t & slsF(i) & " | "
        List1.AddItem t
        t = ""

Make sure you have the SQLite and SQLitening Dll's in your project folder.

The project will not run in the interpreter. Even the IDE might crash.
Always save the project, compile, then execute the exe.

It seems that this was a problem with an older version only. Right now
with this version the project runs fine in the interpreter of the IDE.
Nethertheless be sure to always save your changes before runnining
the project so you will not loose your code.

Added 2011-05-16
Still certain errors might crash the IDE when program is run in Interpreter.
I download and installed Maple Professional today. It is an excellent outline manager, good for keeping notes, information, programming tasks, etc., etc.

A nice side effect - you can convert a file to a windows helpfile (chm). That makes helpfile generation extremely simple.

The price of the program is usually $30.95 but it is free for today (Mar 17, 2011) from Giveaway of the Day - Maple Professional:

Check features here:
Hello Fred,
I was just toying with those routines:

Can they be used to create zip files from existing files or directories also?
Is there an example?
I have updated the Help file and Pdf.

The files of the Tutorials and Taraining section of the forum is incorporated in the documentation files. You find these articles in the new section Tutorials and Taraining and White Papers.
Added Fred's article about Error Handling ( http://www.sqlitening.com/support/index.php?topic=3150.0 ) tho the White Paper section to the helpfile.
SQLiteningMan - a Database Manager for SQLitening

SQLiteningMan is written PB 9 / FireFly 3. The full source code is availabe on the Paul Squire's FireFly3 Forum. Please not that SQLiteningMan is at a very early stage of development. It certainly is not bug free.

SQLiteningMan can work in local or Client / Server mode.

So far I have implemented the following functions:
- Connect to a server
- Open a database
- Read and display a recordset in a listview
- Layout - Changing the fontsize of the listview
- Add records
- Edit records
- Delete records
- Show some database info (will be extended)
- A QuickSQL function
- A SQL Query Builder
- Grid sorting (Credit goes to Jean-Piere Leroy)
- Column Auto Sizing (Credit goes to Jean-Piere Leroy)
- Create databases
- Create tables
- Create indeces- Helpfile
- Create triggers
- Export to CSV
- Grid Printing - Column width reflected in printout

Something about the speed of SQLitening - I tested this app with the sample database that Fred Meier provided. These are the machines I used for testing:

- Server: AMD Athlon 5000 with 2.6 GHz, 2 GB RAM, Win7 Ultimate
- Dev machine: AMD Athlon 4850e with 2,526 MHz, 4 GB RAM, Win XP Pro SP3
- NetBook: Acer 751, Atom Z520, 1.30 GHz, 2 GB RAM, Win XP Home SP3

Speed on Desktop Machine, reading 10,000 records:
- LAN (cable):  0.937 sec
- Local:        0.704 sec

Speed on NetBook, reading 10,000 records:
- Local:        2.781 sec
- WLAN:         3.719 sec
- Internet:     7.516 sec  (Mobile connection via UMTS Stick)

A complete setup with all dependencies, helpfile, and sample database can be downloaded here:

Last Update: 2009-12-25
If you like to use SQLite and SQLitening but need help with SQL statements this is a place where you will find all kinds of examples:

Here is a little function to enable database navigation similar to Cheetah or DAO. Notice though that you are not really working with a recordset, this function just fakes it. In every day use you might be better of with the slSelAry function of SQLitening. But in cases there you could be running out of memory this might be a way out. 

The function is implemented as Dll and Include file.

It offers five ways to navigate:

  • NEXT
  • LAST

There are two sample programs, one for using the include file and one for use with the dll. All files come as source code and in compiled form. Help file and Pdf are also included.


See also this thread:

Upload NavDll.zip new, seemed to be corrupt.

My application needs to be alerted of changes in the database. If one client creates a new record or changes an existing one, then all other clients need to reflect the changes almost immediately, or at least within the next few seconds.

In my old VB6 app (based on Access databases using DAO) I do this by quering the file date/time stamp of the database every 5 seconds. If it changed clients would update their query.

What would be best way to do this in SQLitening? I noticed the slGetChangeCount function. Would calling this function be the best way to be alerted if rows were added or changed. Or are there any other or better scenarios?

As I mentioned before I am running SQLitening on a Windows7 machine since March 2009. The last time a started that machine new was around April 15 - and that was not because either the Windows7 beta or SQLitening gave any problems.

SQLitening produced no errors whatsoever. It reminds me of an old Volkswagen Beetle commeercial of the 60's and 70's:

It runs and runs and runs and runs and ...

I have a small communication server running on that machine that connects to a fleet of vehicles with Windows CE devices. The vehicles are continually polled for GPS position and status, the data is written into a status database. A fleet client (a Mappoint based application) pulls its data from there to visualize status and position of the cars.

Besides that one or more dispatching clients get and write the order, customer and other data from the SQLitening server. On the average SqLitening has to handle between 50 and 100 request per minute. And it doew this absolutely flawlessly.

(You can find some more information about the system here http://www.taxisoftware.eu. But it is in German only.)

The speed is awesome. I test the dispatching client also on an Asus EEE Netbook via an mobile phone based internet connection (UMTS/HDSPA), performance is great!

Fred - this is an awesome product!

Rolf Brandt
I have SQLitening installed on a Windows7 machine. To install and start the service you have to execute SQLiteningServerAdmin.exe as admin of course.

Ran some test with VB6 and PB. I accessed the server from an XP and a Vista machine via LAN and WAN.

Works flawlessly so far!

In a VB6 app if I try to write a number with a leading zero - 0234 for example - to a text field then slBuildInsertOrUpdate will always format it as '234'.

slExeVB slBuildInsertOrUpdateVB("gsmServices", "0171" & Chr(0) & "T-Mobile", "gsmPrefix,gsmService")

The field 'gsmPrefix' is a text field.

Background: The field holds area codes which start in Germany always with a zero.

I have prepared a helpfile (chm) from Fred's text file documentation. Might be helpful.

For help project files, pdf, html, etc. contact me.


Helpfile was updated Jan 16, 2008


The help file is now included in the project documentation. So if you downloaded the latest version of SQLitening (v1.11) you have it already. Additionally I put here the Pdf documentation of the latest version.

Rolf Brandt

Helpfile and Pdf updated.

Rolf Brandt

Current Help File and Pdf can now be found in the SQLitening v1.20 download at http://www.planetsquires.com/files/sqlitening_120.zip.

Rolf Brandt