LibSQL - SQLITE DATABASE FOR LB

by Richard Peeters, r.peeters@pandora.be

Home

Drawn Objects

Documenting Code

Tipcorner - Helpfile

Bmpbuttons

Prompt by Brad Moore

Locate Controls

Tips by Dennis McKinney

Demos by Bill Jennings

Review of TheWrap

Integration by Tom Nally

SQLite by Richard Peeters

Help Writing by Jerry Muelver

Index

See libsql4.bas for a demonstration of the method.

The SQLite.DLL is included in the archive with this newsletter.

Introduction

SQLite is a public domain C library that implements an SQL database engine. Programs that link with the SQLite library can have SQL database access without running a separate RDBMS process. SQLite is not a client library used to connect to a big database server. SQLite is the server. The SQLite library reads and writes directly to and from the database files on disk.

All information is written to disk as strings. This means that in a CREATE TABLE statement you do not have to give the kind of data you will be putting in the fields. Another thing is that SQLite uses records of variable length. So no need to give fieldlengths. All tables (datafiles) and indexes in a database are all in 1 physical file on disk.

This is a first version (v1.4) of a Liberty Basic user interface to test the SQLite DLL and to learn SQL. Colin McMurchie wrote the API functions to access the DLL and provided us with a program to test them. I used some of his functions as a base for LibSQL.

For the SQL syntax understood by SQLite see the SQLite website:

[http://www.hwaci.com/sw/sqlite/lang.html]

For the time being LibSQL only supports part of SQLite (see below). On the other hand I added some (I hope) useful functions. This is not a SQL course. There are many sources of information available on the subject in written form and on the internet. If there is enough interest in the subject I can eventually create a tutorial for a future newsletter.

How to get started

1. Create a folder to contain the program, the DLL and your (future) database(s).

2. Download the SQLite documentation from the above mentioned website.

2. CopySQLite.dll v2.7.5 to the created folder.

3. Copy LibSQL to the created folder.

4. Run LibSQL.

5. Create a database (database -> new) or open an existing one.

Do not give an extension - default is .dbs

If you try to create a database that already exists, the existing one is opened.

The program opens 2 texteditorwindows. The upper one is used to enter commands and queries. You can enter commands on one line or on different lines. When you click 'execute' everything is concatenated in one line.

Ex: 'Select * from test'
       is the same as
      
        'Select
        *
        from test'

Every string has to be enclosed in single quotes. Numbers may be but it is optional.

Ex: Select * from test where name='lennon'

You can save LibSQL commands with the file -> save option and recall them with file -> open. To save time commands can be copied and pasted.

The lower texteditor will display the results and the program messages.

6. Create a table.

7. Do some SELECT queries.

8. Try things out

9. Give feedback

LibSQL v1.1 - Supported functions

All syntax starting with . is an added feature. This means that the program does at least some processing before (eventually) calling the DLL. All syntax without a leading . is a straightforward SQLite call. In the following all LibSQL syntax is shown in UPPER Case, although lowercase is permitted in all commands.

CREATE TABLE tablename (field1,field2,...,fieldx)
    Ex: CREATE TABLE test (Name,firstname,age)

CREATE INDEX indexname ON tablename (field)
    Ex:CREATE INDEX textindex ON test (name)

DROP TABLE tablename
    Ex: DROP TABLE test

DROP INDEX indexname
    Ex: DROP INDEX testindex

DELETE FROM tablename
    deletes complete table

DELETE FROM tablename WHERE condition
    Ex: DELETE FROM test WHERE name='peeters'

INSERT and .INSERT
INSERT follows the SQL syntax -  .INSERT allow to drop the ,'s and the ()'s.

    Ex: INSERT INTO test VALUES
        ('peeters',
        'richard',
        30)

    Ex: .INSERT INTO test
        peeters
        richard
        30
 
UPDATE tablename SET
    fieldname=value
    WHERE condition

    Ex: update test
        SET name='tanson'
        WHERE age=30


SELECT * FROM tablename
    Ex: SELECT * FROM test
    Ex: SELECT * FROM sqlite_master
.MODE
sets the way the result from a Select query is displayed.

.MODE LINE: every field of the returned records is displayed one after the other seperated by |.
.MODE LIST: every field is on a line of its own
.MODE COL: all fields are lined up every 15 positions - fields longer then 15 are truncated.
.mod PRINT: same as col but result to the printer.
.MODE FILE: result is output to a comma separated textfile.

Future plans

Richard Peeters - jan. 2003

r.peeters@pandora.be

Home

Drawn Objects

Documenting Code

Tipcorner - Helpfile

Bmpbuttons

Prompt by Brad Moore

Locate Controls

Tips by Dennis McKinney

Demos by Bill Jennings

Review of TheWrap

Integration by Tom Nally

SQLite by Richard Peeters

Help Writing by Jerry Muelver

Index