我正在一个非网络环境中试验ErlyDB,而且我没有多少运气。
我有一个用于测试的“Thing”表,以及相应的Thing模块:
-module(thing).
-export([table/0, fields/0]).
table() ->
thing.
fields() ->
[name, value].模块本身工作-我可以使用(Thing = thing:find({name,'=',“test”})查询数据库。
当我试着保存一张新唱片的时候,情况就不太好了。
我始终看到以下错误:
mysql_conn:426: fetch <<"BEGIN">> (id <0.97.0>)
mysql_conn:426: fetch <<"INSERT INTO thing(value,name) VALUES ('vtha','blah')">> (id <0.97.0>)
mysql_conn:426: fetch <<"ROLLBACK">> (id <0.97.0>)
** exception exit: {{'EXIT',{badarg,[{erlang,hd,[[]]},
{erlydb_base,'-do_save/1-fun-0-',4},
{mysql_conn,do_transaction,2},
{mysql_conn,loop,1}]}},
{rollback_result,{updated,{mysql_result,[],[],0,[]}}}}
in function erlydb_base:do_save/1
in call from erlydb_base:hook/4
in call from test_thing:test/0
called as test_thing:test()表存在,凭据工作,SQL本身也很好,因为我可以直接在数据库上执行命令。
我用来保存的代码是:
erlydb:start(mysql, Database),
Thing = thing:new(<<"hello">>, <<"world">>),
thing:save(Thing),我遗漏了什么吗?是否有办法从数据库中查看一些更有用的错误消息?
发布于 2009-08-04 18:02:20
查看来源 of erlydb_base,当erlydb调用thing模块的db_pk_fields()函数时会发生异常。该函数应该返回一个列表,但显然它没有返回。
https://stackoverflow.com/questions/1228893
复制相似问题