我正在尝试使用 Pgocaml用于我的应用程序中的数据库交互。
这是我正在尝试编译的文件:
let () =
let dbh = PGOCaml.connect () in
let insert name salary email =
PGSQL(dbh) "insert into employees (name, salary, email) values ($name, $salary, $?email)"
in
insert "Ann" 10_000_l None;
insert "Bob" 45_000_l None;
insert "Jim" 20_000_l None;
insert "Mary" 30_000_l (Some "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="177a76656e57726f767a677b723974787a" rel="noreferrer noopener nofollow">[email protected]</a>");
let print_row (id, name, salary, email) =
let email = match email with Some email -> email | None -> " -"
in Printf.printf "%ld %S %ld %S\n" id name salary email in
let rows =
PGSQL(dbh) "select id, name, salary, email from employees"
in List.iter print_row rows;
PGOCaml.close dbh
这就是我尝试编译它的方式:
ocamlbuild -use-ocamlfind -pkg pgocaml pgex.native
这是我收到的错误:
+ ocamlfind ocamldep -package pgocaml -modules pgex.ml > pgex.ml.depends
File "pgex.ml", line 4, characters 19-97:
Error: Syntax error
Command exited with code 2.
为什么我会收到此错误?
提前致谢!
最佳答案
PG'OCaml 是一个语法扩展,它不是常规的 ocaml 代码,因此您需要采取额外的步骤来让它发挥其魔力。首先,阅读tutorial它还解释了如何使用 pgocaml 编译项目。其次,告诉构建系统 pgex.ml
应使用 camlp4
进行预处理- 即创建_tags
文件内容为 <pgex.ml>: syntax(camlp4o)
.
关于ocaml - 我如何使用 Pgocaml 编译一些东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17799436/