Académique Documents
Professionnel Documents
Culture Documents
import Database.HDBC.Sqlite3
import Database.HDBC
infoConexionTiendaBD :: IO()
infoConexionTiendaBD =
do
-- Conectar con la BD
conn <- connectSqlite3 "TiendaBD.db"
-- Mostramos la informacion
putStr ("Nombre del driver hdbc: " ++ (hdbcDriverName conn) ++ "\n")
putStr ("Version de la biblioteca cliente usada: " ++ (hdbcClientVer conn) ++ "\n")
putStr ("Version del SGDB: " ++ (dbServerVer conn) ++ "\n")
putStr ("Soporte para transacciones: " ++ (show(dbTransactionSupport conn)) ++ "\n")
-- Desconectar de la BD
disconnect conn
crearTiendaBD :: IO()
crearTiendaBD =
do
-- Conectar con la BD
conn <- connectSqlite3 "TiendaBD.db"
-- Realizar commit
commit conn
-- Desconectar de la BD
disconnect conn
insertarTiendaBD :: IO()
insertarTiendaBD =
do
-- Conectar con la BD
conn <- connectSqlite3 "TiendaBD.db"
-- Insercion simple
run conn "INSERT INTO Clientes VALUES (?, ?, ?, ?)"
[toSql "78945612A", toSql "Emma", SqlNull, toSql "123456789"]
-- Sentencias predefinidas
insertaC <- prepare conn "INSERT INTO Clientes VALUES (?, ?, ?, ?)"
insertaA <- prepare conn "INSERT INTO Articulos VALUES (?, ?, ?)"
insertaP <- prepare conn "INSERT INTO Pedidos VALUES (?, ?, ?)"
insertaPA <- prepare conn "INSERT INTO Pedidos_Articulos VALUES (?, ?, ?)"
executeMany insertaC [[toSql "79846851H",
toSql "Francisco Javier",
toSql "C/ Principal",
toSql "456789123"],
[toSql "79952201K",
toSql "Sonia",
SqlNull,
toSql "789123456"]]
-- Realizar commit
commit conn
-- Desconectar de la BD
disconnect conn
actualizarTiendaBD :: IO ()
actualizarTiendaBD =
do
-- Conectar con la BD
conn <- connectSqlite3 "TiendaBD.db"
-- Realizar la actualizacion del nombre del articulo con codigo 001 a Boli verde
run conn "UPDATE Articulos SET nombre = 'Boli verde' WHERE codigo = '001'" []
-- Realizar commit
commit conn
-- Desconectar de la BD
disconnect conn
-- Realizar la consulta
tuplas <- quickQuery' conn consulta []
-- Realizar commit
commit conn
-- Desconectar de la BD
disconnect conn
-- Devolver las tuplas
return tuplas
eliminarTiendaBD :: IO ()
eliminarTiendaBD =
do
-- Conectar con la BD
conn <- connectSqlite3 "TiendaBD.db"
-- Realizar commit
commit conn
-- Desconectar de la BD
disconnect conn
infoTiendaBD :: IO()
infoTiendaBD =
do
-- Conectar con la BD
conn <- connectSqlite3 "TiendaBD.db"
-- Obtenemos la informacion
tables <- getTables conn
-- Mostramos la informacion
putStr (concat (map (++"\n") tables))
-- Desconectar de la BD
disconnect conn
tablaTiendaBD :: IO [[SqlValue]]
tablaTiendaBD =
do
-- Pedir el nombre de la tabla
putStr "Nombre de la tabla: "
-- Conectar con la BD
conn <- connectSqlite3 "TiendaBD.db"
-- Realizar la consulta
tuplas <- quickQuery' conn ("SELECT * FROM " ++ nombre) []
-- Desconectar de la BD
disconnect conn
tablaTiendaBD' :: IO [[SqlValue]]
tablaTiendaBD' = tablaTiendaBD `catchSql` manejador
where manejador e =
do
putStr ("Error: " ++ show e ++ "\n")
tablaTiendaBD'
borrarTiendaBD :: IO()
borrarTiendaBD =
do
-- Conectar con la BD
conn <- connectSqlite3 "TiendaBD.db"
-- Realizar commit
commit conn
-- Desconectar de la BD
disconnect conn