似乎您已经在Valadoc中使用了该示例,但是没有将类型信息从Vala语法转换为Genie语法。所以
Sqlite.Databasedb会
db:Sqlite.Database。
Genie中的一个有效示例是:
[indent=4]init db:Sqlite.Database errmsg:string ec:int = Sqlite.Database.open("cookbook.sqlite", out db) if ec != Sqlite.OK stderr.printf("Can't open database: %d: %sn", db.errpre(), db.errmsg()) Process.exit( -1 ) query:string ="""CREATE TABLE Recipes ( pkiD INTEGER PRIMARY KEY, name TEXT, servings TEXT, source TEXT ) """ db.exec (query, null, out errmsg)需要注意的几件事:
- 精灵只能返回成功的结果,因此
return -1
目前不允许。这可能会有所改变,请参见https://bugzilla.gnome.org/show_bug.cgi?id=707233。要解决此问题,可以使用GLib的Process.exit(),如上例所示。这样做的缺点是程序立即终止而不破坏对象。因此final
,例如,如果您在类中使用它来关闭数据库连接,final
则不会调用该块。或者,您也可以return
,它总是返回0 - 逐字字符串“”
"""I'm a verbatim string"""
非常适合在Genie中嵌入SQL :-)



