-# SQLite3 Adaptor
+# MySQL4 Adaptor
Note: this is far from being complete! The adaptor is currently a fork of
- the PostgreSQL adaptor.
+ the MySQL4 adaptor.
TODO
====
-- check EOAttribute+SQLite:
- -loadValueClassAndTypeUsingSQLiteType:...
-- SQLiteChannel.m:
- -primaryFetchAttributes => check field name processing
-- rewrite for exception less operation
-- implement more methods in SQLiteChannel+Model (hard with SQLite though)
+- implement
Basics
======
Open a Shell:
- sqlite3 OGo
+ mysql --password=abc
+ > use OGo
> insert schema
> select * from date_x;
-Configure the Adaptor (below does not work yet for SQLite3!)
+Configure the Adaptor (below does not work yet for MySQL4!)
- Defaults write ogo-webui-1.0a LSAdaptor SQLite3
+ Defaults write ogo-webui-1.0a LSAdaptor MySQL4
Defaults write ogo-webui-1.0a LSConnectionDictionary \
'{ databaseName = OGo; }'
Defaults write ogo-webui-1.0a PKeyGeneratorDictionary \
"{ newKeyExpression=\"select nextval(\\'key_generator\\');\" }"
- SQLiteDebugEnabled
+ MySQL4DebugEnabled
Setup gdltest Database
======================
-sqlite3 Test.sqldb
-sqlite> CREATE TABLE my_table ( pkey INT PRIMARY KEY );
-
-
-
-Sequential execution
-====================
-http://www.hwaci.com/sw/sqlite/c_interface.html
-
----snip---
-typedef struct sqlite_vm sqlite_vm;
-
-int sqlite_compile(
- sqlite *db, /* The open database */
- const char *zSql, /* SQL statement to be compiled */
- const char **pzTail, /* OUT: uncompiled tail of zSql */
- sqlite_vm **ppVm, /* OUT: the virtual machine to execute zSql */
- char **pzErrmsg /* OUT: Error message. */
-);
-
-int sqlite_step(
- sqlite_vm *pVm, /* The virtual machine to execute */
- int *pN, /* OUT: Number of columns in result */
- const char ***pazValue, /* OUT: Column data */
- const char ***pazColName /* OUT: Column names and datatypes */
-);
-
-int sqlite_finalize(
- sqlite_vm *pVm, /* The virtual machine to be finalized */
- char **pzErrMsg /* OUT: Error message */
-);
----snap---
-
-
-Error-Codes
-===========
-
----snip---
-#define SQLITE_OK 0 /* Successful result */
-#define SQLITE_ERROR 1 /* SQL error or missing database */
-#define SQLITE_INTERNAL 2 /* An internal logic error in SQLite */
-#define SQLITE_PERM 3 /* Access permission denied */
-#define SQLITE_ABORT 4 /* Callback routine requested an abort */
-#define SQLITE_BUSY 5 /* The database file is locked */
-#define SQLITE_LOCKED 6 /* A table in the database is locked */
-#define SQLITE_NOMEM 7 /* A malloc() failed */
-#define SQLITE_READONLY 8 /* Attempt to write a readonly database */
-#define SQLITE_INTERRUPT 9 /* Operation terminated by sqlite_interrupt() */
-#define SQLITE_IOERR 10 /* Some kind of disk I/O error occurred */
-#define SQLITE_CORRUPT 11 /* The database disk image is malformed */
-#define SQLITE_NOTFOUND 12 /* (Internal Only) Table or record not found */
-#define SQLITE_FULL 13 /* Insertion failed because database is full */
-#define SQLITE_CANTOPEN 14 /* Unable to open the database file */
-#define SQLITE_PROTOCOL 15 /* Database lock protocol error */
-#define SQLITE_EMPTY 16 /* (Internal Only) Database table is empty */
-#define SQLITE_SCHEMA 17 /* The database schema changed */
-#define SQLITE_TOOBIG 18 /* Too much data for one row of a table */
-#define SQLITE_CONSTRAINT 19 /* Abort due to contraint violation */
-#define SQLITE_MISMATCH 20 /* Data type mismatch */
-#define SQLITE_MISUSE 21 /* Library used incorrectly */
-#define SQLITE_NOLFS 22 /* Uses OS features not supported on host */
-#define SQLITE_AUTH 23 /* Authorization denied */
-#define SQLITE_ROW 100 /* sqlite_step() has another row ready */
-#define SQLITE_DONE 101 /* sqlite_step() has finished executing */
----snap---
+mysql --password=abc
+> create database Test;
+> use Test;
+> CREATE TABLE my_table ( pkey INT PRIMARY KEY );