Universidad de Costa Rica
|
|
|
|
|
Repita su programa de la tarea programada anterior pero almacene los datos en una base de datos SQLite.
KNOWLEDGE_AREA.sql con el siguiente contenido:
-- KNOWLEDGE_AREA.sql -- Crea la tabla KNOWLEDGE_AREA en la base de datos
CREATE TABLE KNOWLEDGE_AREA (
ID_KU INTEGER NOT NULL,
STR_KA VARCHAR(3) NOT NULL,
STR_KU VARCHAR NOT NULL,
NUM_SEC INTEGER NOT NULL,
COD_T CHAR(1) NOT NULL,
STR_LG CHAR(2) NOT NULL,
COD_LEVEL CHAR(1) NOT NULL,
NUM_TIER_1 INTEGER NOT NULL,
NUM_TIER_2 INTEGER NOT NULL,
STR_DESCRIPTION VARCHAR NOT NULL
);
-- KNOWLEDGE_AREA.sql -- Fin de archivo
Luego ejecuten el programa
sqlite3.exe y ahí dentro usan el comando
.read para crear la tabla en la base de datos:
X:\DIR\SubDir> sqlite3 ACMgen.db
SQLite version 3.6.13
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite>
sqlite>.read create_KNOWLEDGE_AREA.sql
sqlite>.dump KNOWLEDGE_AREA
BEGIN TRANSACTION;
CREATE TABLE KNOWLEDGE_AREA (
ID_KU INTEGER NOT NULL,
STR_KA VARCHAR(3) NOT NULL,
STR_KU VARCHAR NOT NULL,
NUM_SEC INTEGER NOT NULL,
COD_T CHAR(1) NOT NULL,
STR_LG CHAR(2) NOT NULL,
COD_LEVEL CHAR(1) NOT NULL,
NUM_TIER_1 INTEGER NOT NULL,
NUM_TIER_2 INTEGER NOT NULL,
STR_DESCRIPTION VARCHAR NOT NULL
);
COMMIT;
sqlite>
ACMgen.db a partir del archivo
ACMgen.csv usando la pantalla negra pero tengo un
problema, pues me da un error de lectura y no me carga nada:
¿Qué estoy haciendo mal?X:\DIR\SubDir> sqlite3 ACMgen.db SQLite version 3.6.13 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite> sqlite> .read create_KNOWLEDGE_AREA.sql sqlite> .separator "," sqlite> .import ACMgen.csv KNOWLEDGE_AREA ACMgen.csv line 2: expected 10 columns of data but found 11 sqlite> sqlite> select * from KNOWLEDGE_AREA; sqlite> sqlite> .quit X:\DIR\SubDir>
.import del el intérprete de comandos
sqlite3.exe usa un lector de archivos
.CSV que siempre parte el valor de lectura si encuentra
alguna coma, aún si está entre comillas. Por
ejemplo, para Excel la hilera CSV [ "Last, First",
1234 ] tiene 2 campos porque la primera coma está
entre comillas, pero para el comando .import de
sqlite3.exe tiene 3 campos (porque tiene 2 comas que
los separan).
Entregue su tarea por correo electrónico, como lo hizo anteriormente.
| Tiempo de entrega: | 1 semana | |
| Modalidad: | En parejas |
Adolfo Di Mare <adolfo@di-mare.com>.
|
|
|