[入门] 关于现在学习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都试了,错误一样,搜了一圈没找到原因(有说是结束符分号问题,但这里不是)

以前的老版本好像玩过没问题,谁知道什么原因?

Global site tag (gtag.js) - Google Analytics