UE4 MySQL插件:连接、查询和更新数据库的蓝图函数库
#pragma once
#include 'Modules/ModuleManager.h'#include 'Windows/AllowWindowsPlatformTypes.h'#include 'mysql.h'#include 'Engine/Texture2D.h'#include 'ImageUtils.h'#include 'CoreMinimal.h'#include 'Kismet/BlueprintFunctionLibrary.h'#include 'mySQLPluginBPLibrary.generated.h'
using namespace std;
/** * 存储MySQL数据表的结构体 */USTRUCT(BlueprintType, Category = 'MySql|Tables')struct FMySQLDataTable{ GENERATED_BODY()
/** 数据列名称 */ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = 'SQLDataTable') FString ColumnName;
/** 数据列数据 */ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = 'SQLDataTable') TArray<FString> ColumnData;};
/** * 存储MySQL数据行的结构体 */USTRUCT(BlueprintType, Category = 'MySql|Tables')struct FMySQLDataRow{ GENERATED_BODY()
/** 数据行数据 */ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = 'SQLDataRow') TArray<FString> RowData;};
/** * MySQL插件蓝图函数库 * 提供连接、查询和更新MySQL数据库的蓝图函数 */UCLASS()class MYSQLPLUGIN_API UmySQLPluginBPLibrary : public UBlueprintFunctionLibrary{ GENERATED_BODY()
/** 将FString转换为char* */ static char* GetCharfromFString(FString Query);
/** 将char*转换为wchar_t* */ static wchar_t* GetWCharfromChar(const char* Input);
/** * 连接到MySQL数据库 * @param Server 数据库服务器地址 * @param DBName 数据库名称 * @param UserID 用户名 * @param Password 密码 * @param IsSuccess 连接是否成功 * @param errorMassage 错误信息 */ UFUNCTION(BlueprintCallable, Category = 'MYSQL') static void Mysql_Connection(FString Server, FString DBName, FString UserID, FString Password, bool& IsSuccess, FString& errorMassage);
/** 关闭数据库连接 */ UFUNCTION(BlueprintCallable, Category = 'MYSQL') static void Mysql_Close();
/** * 查询数据表中的多行数据 * @param FeildName 查询的字段名,多个字段用逗号分隔 * @param TableName 表名 * @param IsSuccess 查询是否成功 * @param errorMassage 错误信息 * @param TableHead 表头 * @param Rows 查询结果,存储在FMySQLDataRow数组中 */ UFUNCTION(BlueprintCallable, Category = 'MYSQL') static void SelectDataTableRows(FString FeildName, FString TableName, bool& IsSuccess, FString& errorMassage, TArray<FString>& TableHead, TArray<FMySQLDataRow>& Rows);
/** * 向数据表中插入一行数据 * @param TableName 表名 * @param Values 插入的值,多个值用逗号分隔,字符串需要用单引号包裹 * @param IsSuccess 插入是否成功 * @param errorMassage 错误信息 */ UFUNCTION(BlueprintCallable, Category = 'MYSQL') static void insertRow(FString TableName, FString Values, bool& IsSuccess, FString& errorMassage);
/** * 从数据表中删除一行数据 * @param TableName 表名 * @param Field 条件字段名 * @param value 条件字段值 * @param IsSuccess 删除是否成功 * @param errorMassage 错误信息 */ UFUNCTION(BlueprintCallable, Category = 'MYSQL') static void deleteRow(FString TableName, FString Field, FString value, bool& IsSuccess, FString& errorMassage);
/** * 更新数据表中的数据 * @param TableName 表名 * @param Field 要更新的字段名 * @param NewValue 新值 * @param FormerField 条件字段名 * @param FormerValue 条件字段值 * @param IsSuccess 更新是否成功 * @param errorMassage 错误信息 */ UFUNCTION(BlueprintCallable, Category = 'MYSQL') static void UpdateTable(FString TableName, FString Field, FString NewValue, FString FormerField, FString FormerValue, bool& IsSuccess, FString& errorMassage);
/** * 更新数据表中的二进制文件数据 * @param TableName 表名 * @param FieldName 要更新的字段名 * @param ID 主键ID * @param inFile 文件路径 * @param IsSuccess 更新是否成功 * @param errorMassage 错误信息 */ UFUNCTION(BlueprintCallable, Category = 'MYSQL') static void UpdateBinaryFile(FString TableName, FString FieldName, FString ID, FString inFile, bool& IsSuccess, FString& errorMassage);
/** * 从数据表中查询图像 * @param TableName 表名 * @param ID 主键ID * @param Image_Indxe 图像索引 * @param IsSuccess 查询是否成功 * @param errorMassage 错误信息 * @param Texture 查询到的图像 */ UFUNCTION(BlueprintCallable, Category = 'MYSQL') static void Selectimage(FString TableName, FString ID, int Image_Indxe, bool& IsSuccess, FString& errorMassage, UTexture2D*& Texture);
/** * 获取指定路径下的所有文件 * @param inPath 文件夹路径 * @param Fileform 文件扩展名 * @param FileList 文件列表 */ UFUNCTION(BlueprintCallable, Category = 'Paths') static void GetFiles(FString inPath, FString Fileform, TArray<FString>& FileList);};
原文地址: https://www.cveoy.top/t/topic/bxK6 著作权归作者所有。请勿转载和采集!