标签:
在UE4.6版本加入的模块。可以让开发者使用SQLite数据库。SQlite是个轻量型的本地数据库。
我下面就来介绍一下如何使用这个模块。
第一步:下载SQLite源代码以及SQLite GUI管理工具SQLite Expert。
DownLoad,选择源代码下载。
SQLite Expert可以去http://www.sqliteexpert.com/下载,个人版是完全免费,这里我推荐用破解的专业版,同时本人不太喜欢新版本。
第二步:编译对应平台的LIB文件
进入\Engine\Source\ThirdParty\sqlite,并且新建文件夹命名为sqlite,将源代码中的文件解压至新建的文件夹。之后返回上级目录,运行VS工程文件。将Debug、Release以及对应的win32、x64都编译一遍,虽然只需要对应平台,但是你以后肯定会打包的,所以为了避免以后找不到这个问题,在这里就全编译了。
第三步:编译引擎
这步我也不确定,官方说明文件中有说需要编译,但是我因为已经编译过了,所以也不太确定。
第四步:在工程文件中加入SQLiteSupport模块
PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore" , "SQLiteSupport" });
最后在需要使用SQLite的地方包含头文件
#include "Runtime/SQLiteSupport/Public/SQLiteDatabaseConnection.h"
之后就可以使用SQLite了。
下面是一段我测试用的代码,具体怎么用,麻烦各位去看源代码,一共也没几个函数,如果用过SQLite SDK能很快上手。
FSQLiteDatabase Database; Database.Open (TEXT("D:\\UnrealProject\\Sqlite\\Content\\database.db"), nullptr, nullptr); //run query where no results are returned Database.Execute (*(FString::Printf (TEXT ("insert into test (id,name) values (1,123)"), *(FDateTime::Now ().ToString ()), *(FApp::GetSessionId ().ToString ())))); Database.Close();
这个是AnswerHub的案例代码,我发现第一句话就错了,下面的仅供参考
//create and open the database FSQLiteDatabase Database(); Database.Open("Path\\To\\File", nullptr, nullptr); //run query where no results are returned Database->Execute(*(FString::Printf(TEXT("Update GameSession set SessionTimeEnd= %s where SessionID = %s"), *(FDateTime::Now().ToString()), *(FApp::GetSessionId().ToString())))); //run query to fetch results from database FSQLiteResultSet* NameResults = NULL; if (Database.Execute(*(FString::Printf(TEXT("Select * from Players where SessionID = %s;"), *SessionID)),NameResults)) { for (FSQLiteResultSet::TIterator NameIterator(NameResults); NameIterator; ++NameIterator) { //do something with the results here } }
标签:
原文地址:http://www.cnblogs.com/blueroses/p/5648025.html