UE4 操作 SQLite3
overview
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Dfq7U629-1633002886091)(https://note.youdao.com/yws/res/15994/WEBRESOURCEc378d8575ee57d412b6239909405255d)]](https://img-blog.csdnimg.cn/db10885b833b4a23bd34a23148bc6f14.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAd2Jsb25nX2Nz,size_20,color_FFFFFF,t_70,g_se,x_16)   
蓝图操作SQLite3
打开数据链接

查询

Cpp 操作SQLite3
注意:外部模块调用插件内的接口,需要将插件中的接口导出。
class HISQLITE3_API USQLiteConnector {
}
USQLiteConnector* NewSQLiteConnector = NewObject<USQLiteConnector>();
FSQLiteReturnInfo ReturnInfo;
NewSQLiteConnector->Open(TEXT("Path:\\Test.sqlite"), ReturnInfo);
if (ReturnInfo.ReturnInfoType == ESQLiteReturnInfoType::SQLITE_OK) {
USQLiteResultor* Resultor;
NewSQLiteConnector->ExecuteWithRecordSet(TEXT("SELECT * FROM ElementsTable;"), Resultor, ReturnInfo);
{
TArray<FSQLiteColumnInfo> ColumnInfos;
Resultor->GetColumnInfos(ColumnInfos);
bool IsAtEnd;
FString str_value;
int32 int_value;
do {
for (auto colum : ColumnInfos)
{
switch (colum.DataType) {
case ESQLiteDataType::SQLITE_DT_STRING:
Resultor->GetString(colum.ColumnName, str_value);
break;
case ESQLiteDataType::SQLITE_DT_INT:
Resultor->GetInt(colum.ColumnName, int_value);
break;
default:
str_value = TEXT("");
break;
}
UE_LOG(LogTemp, Warning, TEXT("%s: %s"), *(colum.ColumnName), *str_value);
}
Resultor->MoveToNext();
Resultor->IsAtEnd(IsAtEnd);
} while ((!IsAtEnd));
}
}

参考
|