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:
Luego ejecuten el programa-- 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
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>.
|