Я хочу сгенерировать файл xml с использованием tinyxml2, а файл xml взял данные из базы данных SQLite. и я использовал код, написанный на c ++
. Я поделюсь своим примером кода ...
в базе данных SQLite, там есть 11 столбцов. Я хочу хранить отдельные данные столбца построчно.
** И я также извлекаю данные для отдельных столбцов и столбцов в формате xml.
#include <iostream>
#include <string>
#include <cstring>
#include <stdio.h>
#include <windows.h>
#include "sqlite3.h"
#include "tinyxml2.h"
using namespace std;
using namespace tinyxml2;
static int callback(void* data, int argc, char** argv, char** azColName)
{
int i;
//fprintf(stderr, "%s: \n", (const char*)data);
for (i = 0; i < argc; i++) {
//printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
//cout << argv[i].FirstName << endl;
// cout << azColName[i] << endl;
if(argv[i]){
printf("%s = %s \n", azColName[i], argv[i]);
Sleep(30);
XMLDocument xmlDoc;
XMLNode * pRoot = xmlDoc.NewElement("Root");
xmlDoc.InsertFirstChild(pRoot);
XMLElement * pElement = xmlDoc.NewElement(azColName[i]);
pElement->SetText(argv[i]);
pRoot->InsertEndChild(pElement);
XMLError eResult = xmlDoc.SaveFile("SavedData.xml");
//XMLCheckResult(eResult);
}else{
printf("%20s", " ");
}
}
printf("\n");
return 0;
}
Пожалуйста, помогите мне написать этот код
int main(){
sqlite3* DB;
char* messagesError;
int exit = sqlite3_open("information.db", &DB);
if (exit) {
cerr << "Error open DB " << sqlite3_errmsg(DB) << endl;
return (-1);
}
else
cout << "Opened Database Successfully!" << endl;
string query = "SELECT * FROM SOCKETDATA;";
exit = sqlite3_exec(DB, query.c_str(), callback, NULL, &messagesError);
sqlite3_close(DB);
return (0);
}