根据official docs,通过
连接postgresql非常方便(require db)
(define pgc
(postgresql-connect #:user "example"
#:database "exampledb"
#:password "password"))
但是,这在Typed Racket中没有用(我有(require typed/db)
):
postgresql-connect:模块中的未绑定标识符: 的PostgreSQL-连接
答案 0 :(得分:3)
正确...事实证明typed / db仅用于sqlite3。以下是一些适合我的代码示例:
#lang typed/racket
(require/typed
db
[#:opaque Connection connection?]
[postgresql-connect
(#:port Number #:user String #:database String #:password String
-> Connection)]
[query-rows
(Connection String Any * -> (Listof (Vectorof Any)))]
[query-list
(Connection String Any * -> (Listof Any))])
(define conn
(postgresql-connect #:port 13432
#:user db-username
#:database "scheduling"
#:password db-password))
(define rows
(query-rows
conn
(~a "SELECT * FROM course_mappings")))
请注意,我仅为我想要使用的功能提供了类型。要使用例如query-exec
,您需要为其提供单独的类型。