Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将JSON直接保存到数据库qt_C++_Sql_Sql Server_Json_Qt - Fatal编程技术网

C++ 将JSON直接保存到数据库qt

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"

我一直在使用来自的代码创建JSON文件。 我想将这些文件存储在我的MS SQL Server 2016数据库中

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