问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Haskell语言是否像c语言一样是一门独立的编程语言?如何在MacOS系统上部署和编写Haskell语言?

发布网友 发布时间:2022-04-10 10:25

我来回答

2个回答

懂视网 时间:2022-04-10 14:47

安装 HDBC-Sqlite3

$ cabal install HDBC-Sqlite3
Installed HDBC-sqlite3-2.3.3.1
Prelude> :m Database.HDBC Database.HDBC.Sqlite3
Prelude Database.HDBC Database.HDBC.Sqlite3>

DB 操作

Prelude Database.HDBC Database.HDBC.Sqlite3> conn <- connectSqlite3 "test1.db" -- 连接或创建数据库
Prelude Database.HDBC Database.HDBC.Sqlite3> run conn "CREATE TABLE test (id INTEGER NOT NULL, desc VARCHAR(80))" [] -- 建表
0
Prelude Database.HDBC Database.HDBC.Sqlite3> run conn "INSERT INTO test (id) VALUES (0)" [] -- 插入记录
1
Prelude Database.HDBC Database.HDBC.Sqlite3> commit conn
Prelude Database.HDBC Database.HDBC.Sqlite3> run conn "INSERT INTO test VALUES (?, ?)" [toSql 0, toSql "zero"] -- 插入记录,使用参数
1
Prelude Database.HDBC Database.HDBC.Sqlite3> commit conn
Prelude Database.HDBC Database.HDBC.Sqlite3> stmt <- prepare conn "INSERT INTO test VALUES (?, ?)" -- 插入记录,使用语句
Prelude Database.HDBC Database.HDBC.Sqlite3> execute stmt [toSql 1, toSql "one"] 
1
Prelude Database.HDBC Database.HDBC.Sqlite3> execute stmt [toSql 2, toSql "two"] 
1
Prelude Database.HDBC Database.HDBC.Sqlite3> execute stmt [toSql 3, toSql "three"]
1
Prelude Database.HDBC Database.HDBC.Sqlite3> execute stmt [toSql 4, SqlNull]
1
Prelude Database.HDBC Database.HDBC.Sqlite3> commit conn
Prelude Database.HDBC Database.HDBC.Sqlite3> stmt <- prepare conn "INSERT INTO test VALUES (?, ?)"
Prelude Database.HDBC Database.HDBC.Sqlite3> executeMany stmt [[toSql 5, toSql "five's nice"], [toSql 6, SqlNull]] -- 插入多条记录,使用语句
Prelude Database.HDBC Database.HDBC.Sqlite3> commit conn
Prelude Database.HDBC Database.HDBC.Sqlite3> quickQuery' conn "SELECT * from test where id < 2" [] -- 查询记录
[[SqlInt64 0,SqlNull],[SqlInt64 0,SqlByteString "zero"],[SqlInt64 1,SqlByteString "one"]]
Prelude Database.HDBC Database.HDBC.Sqlite3> quickQuery' conn "SELECT id, desc from test where id <= ? ORDER BY id, desc" [toSql 2] -- 查询记录,使用参数
[[SqlInt64 0,SqlNull],[SqlInt64 0,SqlByteString "zero"],[SqlInt64 1,SqlByteString "one"],[SqlInt64 2,SqlByteString "two"]]
Prelude Database.HDBC Database.HDBC.Sqlite3> stmt <- prepare conn "SELECT * from test where id < 2" -- 查询记录
Prelude Database.HDBC Database.HDBC.Sqlite3> execute stmt []
0
Prelude Database.HDBC Database.HDBC.Sqlite3> results <- fetchAllRowsAL stmt -- 惰性读取
Prelude Database.HDBC Database.HDBC.Sqlite3> mapM_ print results
[("id",SqlInt64 0),("desc",SqlNull)]
[("id",SqlInt64 0),("desc",SqlByteString "zero")]
[("id",SqlInt64 1),("desc",SqlByteString "one")]

DB 操作 2

Prelude Database.HDBC Database.HDBC.Sqlite3> getTables conn
["test"]
Prelude Database.HDBC Database.HDBC.Sqlite3> proxiedClientName conn
"sqlite3"
Prelude Database.HDBC Database.HDBC.Sqlite3> dbServerVer conn
"3.19.3"
Prelude Database.HDBC Database.HDBC.Sqlite3> dbTransactionSupport conn
True
Prelude Database.HDBC Database.HDBC.Sqlite3> quickQuery' conn "SELECT * from test2" []
*** Exception: SqlError {seState = "", seNativeError = 1, seErrorMsg = "prepare 20: SELECT * from test2: no such table: test2"}
Prelude Database.HDBC Database.HDBC.Sqlite3> handleSqlError $ quickQuery' conn "SELECT * from test2" []
*** Exception: user error (SQL error: SqlError {seState = "", seNativeError = 1, seErrorMsg = "prepare 20: SELECT * from test2: no such table: test2"})
Prelude Database.HDBC Database.HDBC.Sqlite3> disconnect conn

Haskell语言学习笔记(68)HDBC

标签:quic   nat   dcl   cut   cep   err   actions   into   cli   

热心网友 时间:2022-04-10 11:55

可搜索《Haskell工具链科普》
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
中堡村村民公约 中港镇中港镇各村情况简介 中堡溪村人口卫生 中堡溪村村情概况 小时代3刺金时代是电影还是电视剧 江苏一氧化二氮气体厂家 原神悬浮小岛怎么上去 原神天衡山天空城上去方法 原神天空城怎么开 天空城进入方法及位置攻略 手机怎么看相册的原图 如何查看微信中图片的原图? 指甲盖不长了怎么回事? 什么是性关系啊, 性关系的英语怎么说 怎样发生性关系才是正常的? 性关系是爱情?男女之间发生性关系代表相爱吗 如何理解性关系 什么是正常的性关系? 什么是性关系、怎样才算性关系? Which pair of trousers would you like ? I would like the blue ( ) 括号中应该填pair还是pair of ? 英语中牛仔裤可数么 英语中衣服是可数名词吗 trousers算不算单数? 【英语】Here ()some trousers.Here()some treasure. he has got a new trousers为什么不加a? 该名词可数吗? 衣服可不可数?? 一条裤子是单数还是复数。知道吗? 名词的可数和不可数 下列词哪些是可数名词,那些是不可数名词. 还有a pair of trousers可数吗 我不长手指甲的原因是什么 手指甲掉了有十年了为什么到现在一直不长 为什么手指甲到一定地步 就不长了 手指甲掉了为什么长不出来了? 为什么我的手指甲不长了? 手指甲发软留不长是为什么呢? 手指甲为什么不长? pos机刷卡时怎样避免触发支付风险? 如何巧防信用卡被盗刷 教您五招防范风险 信用卡使用中如何避免一些问题? 给男生织围巾 他大概184,多长比较合适呢 我织的围巾线软 平铺量跟竖直垂放量大概差20公分,以哪个为准? 给身高168的男孩子织围巾适合织多长? 给男生织围巾,有什么意义?织多长的? 男士围巾织多长合适我老公185CM 织围巾给男友应该多宽多长? 给一个北方的男生织围巾 身高180 织多长合适 给男生织围巾 第一次 不知道要织多长多宽 身高175左右 比较瘦 各位有经验的姐姐们有什么建议吗 英特尔xeon至强e5649处理器多少钱 英特尔Xeon(至强)E5-26600@2.20GHz八核32纳米显卡GT10304G能玩绝地永生吗? 部长 英语怎么说