我已经开始在 Vala 中编写 rss 阅读器,但我不知道我应该使用什么数据库系统,我无法连接到 couchdb 并且 sqlite 工作正常,但我想使用 couchdb 因为 ubuntu 之一。我有最新的更新
public CouchDB.Session session;
public CouchDB.Database db;
public string feed_table = "feed";
public string item_table = "item";
public struct field {
string name;
string val;
}
// constructor
public Database() {
try {
this.session = new CouchDB.Session();
} catch (Error e) {
stderr.printf ("%s a\n", e.message);
}
try {
this.db = new CouchDB.Database (this.session, "test");
} catch (Error e) {
stderr.printf ("%s a\n", e.message);
}
try {
this.session.get_database_info("test");
} catch (Error e) {
stderr.printf ("%s aa\n", e.message);
}
try {
var newdoc = new CouchDB.Document ();
newdoc.set_boolean_field ("awesome", true);
newdoc.set_string_field ("phone", "555-VALA");
newdoc.set_double_field ("pi", 3.14159);
newdoc.set_int_field ("meaning_of_life", 42);
this.db.put_document (newdoc); // store document
} catch (Error e) {
stderr.printf ("%s aaa\n", e.message);
}
报告
$ ./xml_parser rss.xmlCannot connect to destination (127.0.0.1) aa
Cannot connect to destination (127.0.0.1) aaa
从性能的角度来看,我只想说,与 SQLite 等更成熟的解决方案相比,CouchDB 可能不是最快的解决方案。gwibber 的比较表明 SQLite快了 10 倍。
鉴于 RSS 阅读器的功能
SELECT
远不止INSERT
.就您的代码而言,将其与“官方” Vala+Couch 示例进行比较,您没有传递连接详细信息,所以我想知道自动检测机制是否存在问题。Couch 每次运行时都会在不同的端口上启动,但您可以通过 dbus 获取其当前端口:
我不知道 Vala,但手动查找可能会帮助您完成初始连接。