Mi afán por aprender y no rendirme en el intento, me he dado de cabeza nuevamente, con la creación de una tabla que la crea sin problemas, pero al crear otra me muestra "Database is locked". El día anterior fue imposible hacerlo funcionar, lo dejé, pero lo más anecdótico, es que a la mañana siguiente he vuelto a cargar el codigo y ejecutar y zass ha funcionado y ok, crea segunda tabla y la primera ya estaba. Al volver a añadir campos a la tabla por olvido y compilar, otra vez el mensaje de bloqueo. Así no se puede aprender con estos fallos de "Ahora te lo doy, luego no....". He borrado base datos, tabla, reconfigurar y nada. Sé que el problema según he leído es de transacciones y demás que no controlo y aparte veo que está en el segundo EXECSQL, porque si lo elimino, funciona pero no crea tabla personas. Como corregirlo para ser operativo. Deberé crear más tablas.
ZConnection1.Database:= ExtractFilePath(Application.ExeName) + 'dbclientes.sqlite'; ZConnection1.LibraryLocation:= ExtractFilePath(Application.ExeName) + 'sqlite3.dll'; ZConnection1.Protocol:= 'sqlite-3'; ZQuery1.Close; //Por si acaso ZQuery2.Close; // Por si acaso. ZQuery1.SQL.Text := 'CREATE TABLE IF NOT EXISTS "clientes" (codigo varchar(10) PRIMARY KEY NOT NULL, nombre varchar(10), apellidos varchar(50))'; ZQuery1.ExecSQL; ZQuery1.SQL.Text := 'CREATE TABLE IF NOT EXISTS "personas" (npersona varchar(20) PRIMARY KEY NOT NULL, edad integer, ciudad varchar(20))'; ZQuery1.ExecSQL;
Muchas gracias