C++ 将JSON直接保存到数据库qt
我一直在使用来自的代码创建JSON文件。 我想将这些文件存储在我的MS SQL Server 2016数据库中C++ 将JSON直接保存到数据库qt,c++,sql,sql-server,json,qt,C++,Sql,Sql Server,Json,Qt,我一直在使用来自的代码创建JSON文件。 我想将这些文件存储在我的MS SQL Server 2016数据库中 bool SurveyJson::saveSurvey(SurveyJson::SaveFormat saveFormat, QString surveyName) const { QFile saveFile(saveFormat == Json ? "C:/Surveys/" + surveyName +".json"
bool SurveyJson::saveSurvey(SurveyJson::SaveFormat saveFormat, QString surveyName) const
{
QFile saveFile(saveFormat == Json
? "C:/Surveys/" + surveyName +".json"
: "C:/Surveys/" + surveyName +".dat");
if (!saveFile.open(QIODevice::WriteOnly)) {
qWarning("Couldn't open save file.");
return false;
}
QJsonObject surveyObject;
write(surveyObject);
QJsonDocument saveDoc(surveyObject);
saveFile.write(saveFormat == Json
? saveDoc.toJson()
: saveDoc.toBinaryData());
return true;
}
此代码snippit将其保存为C:/Surveys/survayName.json中的文件
我可以使用这个查询将它保存到我的数据库中
INSERT INTO files
SELECT 'json' As FileType, *
FROM OPENROWSET(BULK 'C:\Surveys\test.JSON', SINGLE_BLOB)
as X
如何跳过此步骤并直接保存到数据库?不鼓励保存原始文件/文本
在数据库中调试JSON文件非常困难,并且会产生不必要的复杂性,因为您无法对JSON中的数据使用SELECT 创建一个表,其中每个参数都是一列。它允许更容易的维护,并在表中插入所有参数(或以另一种方式存储它们,但作为值,而不是JSON字符串) 关于你的问题 看看 它为大多数数据库提供了API,并且通过ODBC驱动程序支持SQL Server
如果您真的想保存原始JSON字符串,只需使用QtSQL API(上面的链接)将
saveDoc.toJson()
字符串插入到数据库中即可不鼓励保存原始文件/文本
在数据库中调试JSON文件非常困难,并且会产生不必要的复杂性,因为您无法对JSON中的数据使用SELECT 创建一个表,其中每个参数都是一列。它允许更容易的维护,并在表中插入所有参数(或以另一种方式存储它们,但作为值,而不是JSON字符串) 关于你的问题 看看 它为大多数数据库提供了API,并且通过ODBC驱动程序支持SQL Server
如果您真的想保存原始JSON字符串,只需使用QtSQL API(上面的链接)将
saveDoc.toJson()
字符串插入到您的数据库中即可。您不应该将JSON保存到数据库中,而应该保存到数据中。在数据库中调试JSON文件非常困难,并且会造成不必要的复杂性,由于无法对JSON中的数据使用SELECTs,因此不应将JSON保存到数据库中,而应将其保存到数据中。在数据库中调试JSON文件非常困难,并且会产生不必要的复杂性,因为无法对JSON中的数据使用SELECTs