问题标签 [hdbc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
haskell - Haskell 中的并发数据库连接池
我是一名学习 Haskell 的 Java 程序员。
我在一个使用 Happstack 并通过 HDBC 与数据库对话的小型网络应用程序上工作。
我已经编写了select和exec函数,我像这样使用它们:
如您所见,非常简单。有查询、参数和结果。
连接创建和提交/回滚内容隐藏在 select 和 exec 中。
这很好,我不想在我的“逻辑”代码中关心它。
坏点:
- 每次调用都会创建一个新连接——这会降低负载时的性能
- DB url“users.db”是硬编码的 - 我不能在其他项目中重用这些功能而无需编辑
问题 1:如何引入一个具有一些已定义(最小、最大)并发连接数的连接池,以便在 select/exec 调用之间重用连接?
问题 2:如何使“users.db”字符串可配置?(如何将其移至客户端代码?)
它应该是一个透明的特性:用户代码不应该需要明确的连接处理/释放。
macos - Haskell、HDBC、ODBC、MySQL 和 Mac OS X
我正在尝试使用 Haskell(版本 6.10.3)和 HDBC 连接到 MySQL 数据库。我选择用 Haskell ODBC 来做。我使用 cabal 安装 HDBC (2.1.1) 和 HDBC-ODBC (2.1.0.0)。我已经下载并安装了 MySQL ODBC 驱动程序 (5.1.5)。我使用 macports 安装 unixODBC (2.2.14_1)。所有这些都基于 Mac OS X (10.5.8)。
我大部分时间都在使用此页面http://en.wikibooks.org/wiki/Haskell/Database上的说明。在这一点上:
"# 将 mysql 驱动程序添加到 odbcinst.ini 文件(在 $ODBC_HOME/etc/ 下)和 $HOME/.odbc.ini 中的数据源。"
看起来 unixODBC 的 macports 版本将所有内容都安装在 /opt/local/ 下。我已经将 odbcinst.ini 放入 /opt/local/etc/ 并在我的主目录中创建了一个 .odbc.ini ,看起来像这样(请注意,我已经尝试过 UID vs. USERNAME 和 PWD vs密码):
我已经编写并编译了这个 Haskell 程序:
当我尝试“DSN = myodbc”的DSN时,它会出错:
但是,当我尝试“DSN=myodbc;UID=[hidden];PWD=[hidden]”的 DSN 时,它会列出数据库中的所有表。
haskell - FireBird 数据库的 HDBC 驱动程序
有人能指出我的 HDBC(Haskell) 驱动程序用于 FireBird 数据库吗,谷歌上没有出现任何内容。目前我最好的选择是使用 HDBC-ODBC 桥从 Haskell 程序连接到 FireBird 数据库吗?
mysql - 确定 MySQL 连接是否仍然存在的最便宜的方法
我有一个用于基于 Web 的数据服务的 MySQL 连接池。当它开始为请求提供服务时,它会从池中获取一个连接以供使用。问题是,如果在使用该特定连接后出现了明显的暂停,则服务器可能已将其超时并关闭其结束。我希望能够在池管理代码中检测到这一点。
诀窍是:我编码的环境只给了我一个非常抽象的连接API。我基本上只能执行SQL语句。我无权访问实际的套接字或直接访问 MySQL 客户端 API。
所以,问题是:我可以在连接上执行以确定它是否正常工作的最便宜的 MySQL 语句是什么。例如SELECT 1;
应该可以,但我想知道是否有更便宜的东西?也许某些东西甚至没有通过网络,而是在 MySQL 客户端库中处理并有效地回答了相同的问题?
澄清:我不关心检查 MySQL 服务器是否正在运行,或者它的数据库配置是否足以回答查询。如果这些事情发生了,那么服务执行的后续 SQL 将获取并处理相应的错误。我只关心 TCP 连接是否打开......因为如果服务器关闭它,那么 Web 服务的 SQL 将收到一个错误,表示“只需重新连接并重试”,一旦关闭,这样做会很不方便服务代码的垃圾。
关闭: hack/* ping */
正是我正在寻找的那种东西,但是只能通过 JDBC 获得。阅读该 hack 的文档,很明显它被放在那里的原因与我想要它的原因完全相同。出于好奇,我在Haskel工作,使用HDBC和HDBC-mysql。我将要求 HDBC-mysql 的作者添加一种mysql_ping()
直接调用或通过类似 hack 调用的方法。
Vlad'sDO 1
也是我所追求的那种东西,而且由于其他 hack 在 JDBC 之外不可用,我将使用它。
感谢所有精彩的讨论,尤其是@Vlad!
mysql - 转换时间以在mysql中使用
我正在尝试将时间戳加载到 mysql 中。我所有的时间都是 UTCTime 对象。HDBC mysql 实现似乎不喜欢 UTCTime 对象,尽管内部文档说它将所有时间都视为 UTC 时间。我相信我需要将 UTCTime 转换为 EpochTime,因为它看起来像 HDBC mysql 实现支持绑定 SqlEpochTime。我无法弄清楚如何获取我的 UTCTime 并从中获取 EpochTime。
haskell - Haskell HDBC-Sqlite3 总是返回 SqlByteString 值
我正在使用 HDBC sqlite3 haskell 驱动程序访问本地 sqlite3 数据库
是
结果,例如
我总是得到这样的结果:
这很奇怪!是的,标题包含“国家”符号,是的,我确定它id
的类型为INTEGER
.
所以问题是:
- 为什么 1 个 unicode 符号被威胁为 2 个类似 ascii 的符号?
- 为什么整数列会产生字节串值?
haskell-platform - HDBC -odbc 与haskell连接
现在我想用 haskell 连接 db,我尝试使用 cabal 安装 HDBC-ODBC、HSQL-ODBC 和 HDBC-mysql,我能够配置 sqlite3,如何添加这些包?当我尝试使用 cabal 安装它时出现此错误
我能为此做些什么?
haskell - 无法加载 HDBC-postgresql
我在 Windows XP 上。我按照此页面上的步骤安装了 Yesod:http ://www.yesodweb.com/page/five-minutes
我创建了一个带有 Postgresql 持久性的脚手架应用程序。当我第一次运行“yesod devel”时,它给了我一个关于缺少一些 postgresql 包的错误(我不记得名字),所以我使用 cabal 安装它。现在,当我运行“yesod devel”时,它给了我以下错误:
据我了解,它正在尝试加载 pq.dll,但我的系统上没有它,我有 libpq.dll,所以我尝试重命名 dll,但无济于事。我搞不清楚了。
请帮忙
康斯坦丁
postgresql - 如何在 Database.HaskellDB.HDBC.PostgreSQL 模块中使用 postgresqlConnect?
我不太确定如何使用postgresqlConnect
模块中的函数Database.HaskellDB.HDBC.PostgreSQL
连接到 PostgreSQL 数据库。Haddock 文档页面仅说明类型签名:
应该是什么a
?
如何连接到 PostgreSQL 服务器postgresqlConnect
?
mysql - HDBC-mysql“命令不同步”
我正在使用 Snap 0.6 和 Snaplet-hdbc 基础架构编写一个 Web 应用程序。在后端,我使用 HDBC-mysql 连接到 MySQL。但是在运行应用程序时,它会收到来自 MySQL 的“命令不同步,您现在无法运行此命令”错误。我为每个查询使用 withTransaction'。经过一番谷歌搜索,MySQL 似乎不支持多查询。但是如何使用 HDBC 来避免它呢?