[入门] 关于现在学习D的版本选择问题
hqs7636
2011-05-15
这哥们要学d1,都急了,哈哈
|
|
flythink
2011-05-16
真的, 学d2吧
|
|
sinpool
2011-05-16
这个帖子受到这么多人的相应,
真高兴。 大家都推荐学D2, 那么,目前tango好像还不支持D2, 虽然我刚刚初学, 还不了解tango具体有哪些比phobos优秀的地方, 但是,我发现tango中油“容器(Container)”, 就是Hashmap、Vector等东西, 如果使用D2的话, 这些东西是不是需要自己写了呢? 还是说,对于D2来说,有另一个类似tango的库可以使用? >D2下的sqlite3类封装也有,而且相当不错,非常简明。改天找到链接贴上来 我在betty_betty2008的Blog中, 发现了“Sqlite3 C++类库Sharplite 转D”, 使用dmd(D2.053)进行编译, dmd sqlite3Test.d sqlite3.lib -I…… sample(sqlite3Test.d)没有编译通过, 在link的时候出现了错误, Error 42: Symbol Undefined …… 而且,没定义的函数名存在包含乱码的部分。 我也找找是否还有其他的forD2封装。 |
|
betty_betty2008
2011-05-16
sinpool 写道 这个帖子受到这么多人的相应,
真高兴。 大家都推荐学D2, 那么,目前tango好像还不支持D2, 虽然我刚刚初学, 还不了解tango具体有哪些比phobos优秀的地方, 但是,我发现tango中油“容器(Container)”, 就是Hashmap、Vector等东西, 如果使用D2的话, 这些东西是不是需要自己写了呢? 还是说,对于D2来说,有另一个类似tango的库可以使用? ===>可以这么理解,学D2就是从range 学起,源码参考std.range,std.algorithm >D2下的sqlite3类封装也有,而且相当不错,非常简明。改天找到链接贴上来 我在betty_betty2008的Blog中, 发现了“Sqlite3 C++类库Sharplite 转D”, 使用dmd(D2.053)进行编译, dmd sqlite3Test.d sqlite3.lib -I…… sample(sqlite3Test.d)没有编译通过, 在link的时候出现了错误, Error 42: Symbol Undefined …… 而且,没定义的函数名存在包含乱码的部分。 ===>那个在2.052下Win和Ubuntu都试过OK,2.053下估计得改一改才行; 我也找找是否还有其他的forD2封装。 ===》原链接一不记得在哪了,应该是在NG上读贴时看到的,可以在NG上搜索关键字sqlite 或作者的名字:Alexey Khmara 同步上传7z文件了。 |
|
sinpool
2011-05-16
引用 可以这么理解,学D2就是从range 学起,源码参考std.range,std.algorithm
感谢指明了一个学习方向。 引用 原链接一不记得在哪了,应该是在NG上读贴时看到的,可以在NG上搜索关键字sqlite 或作者的名字:Alexey Khmara
您提到的大概就是这个了吧: https://github.com/bayun/SQLite3-D 我回家研究一下如何使用。 感谢各位的帮助。 |
|
betty_betty2008
2011-05-16
sinpool 写道 引用 可以这么理解,学D2就是从range 学起,源码参考std.range,std.algorithm
感谢指明了一个学习方向。 引用 原链接一不记得在哪了,应该是在NG上读贴时看到的,可以在NG上搜索关键字sqlite 或作者的名字:Alexey Khmara
您提到的大概就是这个了吧: https://github.com/bayun/SQLite3-D 我回家研究一下如何使用。 感谢各位的帮助。 module fsql3; import std.stdio; import std.string; import std.conv; import sqlite3_bindings; import sqlite3; import std.c.stdlib; import std.c.windows.windows; extern(Windows) BOOL SetConsoleOutputCP(UINT); int main(string[] args) { //system("chcp 65001"); f**k the windows console wchar printing issue!! //SetConsoleOutputCP(65001); //connect and open database SqliteDatabase db=new SqliteDatabase(r"C:\Personnal\language\DLang\dbi_7zfromWeb\dbiallsamples\world.db3"); //execute sql query uint changes=db.execute("select * from city"); writefln("total %d changes",changes); write("please enter an Id:"); ulong id=to!ulong(chop(readln)); //param query Sqlite3Statement qry=db.prepare("select * from city where id>?",id); //bind param with value (1 based pos) qry.bindOne(1,id); //it'd be better alias step to next ^_^ qry.step; //qry.next retrieve all data by using /* while(qry.next){} */ //getValue is 0 based string result=qry.getValue!(string)(1); writefln("First row second column:%s",result); readln; return 0; } |
|
sinpool
2011-05-17
感谢betty_betty2008提供的sample,
我已经成功编译并运行了。 |
|
hqs7636
2011-05-23
刚才也试着玩了一下,一路编译都很顺利,betty_betty2008提供的sample也编译出exe了,但运行后直接退回到命令行了,没运行起来,也没任何错误信息,检查sqlite,运行sqlite3.exe后,发现敲“sqlite3 mydb.db;” 命令后提示:error:near “sqlite3”:syntax error ,其它命令也报类似错误,版本3.7.6.3和3.7.6.0都试了,错误一样,搜了一圈没找到原因(有说是结束符分号问题,但这里不是)
以前的老版本好像玩过没问题,谁知道什么原因? |