Advertisement
Guest User

Untitled

a guest
Jun 4th, 2023
38
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.65 KB | None | 0 0
  1. #include <iostream>
  2. #include <sqlite3.h>
  3. #include <dirent.h>
  4. #include <cstring>
  5.  
  6. using namespace std;
  7.  
  8. int main() {
  9. sqlite3* conn;
  10. sqlite3_stmt* res;
  11. int rc = sqlite3_open("C:\\Users\\User\\Desktop\\Work\\DATABASE\\test.db", &conn);
  12.  
  13. if (rc != SQLITE_OK) {
  14. cerr << "Error opening database: " << sqlite3_errmsg(conn) << endl;
  15. sqlite3_close(conn);
  16. return 1;
  17. }
  18. else {
  19. cout << "Opened database successfully\n";
  20. }
  21.  
  22. const char* folder_path = "C:\\Users\\User\\Desktop\\Work\\DATABASE\\tg\\f";
  23. DIR* dir = opendir(folder_path);
  24. struct dirent* entry;
  25.  
  26. while ((entry = readdir(dir)) != NULL) {
  27. if (entry->d_type == DT_REG) {
  28. cout << entry->d_name << endl;
  29. string db_path = folder_path + string(entry->d_name);
  30. sqlite3* part_conn;
  31. rc = sqlite3_open(db_path.c_str(), &part_conn);
  32. if (rc != SQLITE_OK) {
  33. cerr << "Error opening database: " << sqlite3_errmsg(part_conn) << endl;
  34. sqlite3_close(part_conn);
  35. sqlite3_close(conn);
  36. return 1;
  37. }
  38.  
  39. sqlite3_stmt* part_res;
  40. rc = sqlite3_prepare_v2(part_conn, "SELECT * FROM users", -1, &part_res, 0);
  41. if (rc != SQLITE_OK) {
  42. cerr << "Error preparing statement: " << sqlite3_errmsg(part_conn) << endl;
  43. sqlite3_close(part_conn);
  44. sqlite3_close(conn);
  45. return 1;
  46. }
  47.  
  48. while (sqlite3_step(part_res) == SQLITE_ROW) {
  49. int id = sqlite3_column_int(part_res, 0);
  50. const char* name = (const char*)sqlite3_column_text(part_res, 1);
  51. const char* email = (const char*)sqlite3_column_text(part_res, 2);
  52. const char* phone = (const char*)sqlite3_column_text(part_res, 3);
  53. const char* username = (const char*)sqlite3_column_text(part_res, 4);
  54.  
  55. sqlite3_stmt* result_res;
  56. rc = sqlite3_prepare_v2(conn, "SELECT * FROM users WHERE id=?", -1, &result_res, 0);
  57. if (rc != SQLITE_OK) {
  58. cerr << "Error preparing statement: " << sqlite3_errmsg(conn) << endl;
  59. sqlite3_close(part_conn);
  60. sqlite3_close(conn);
  61. return 1;
  62. }
  63.  
  64. sqlite3_bind_int(result_res, 1, id);
  65.  
  66. if (sqlite3_step(result_res) == SQLITE_ROW) {
  67. sqlite3_stmt* update_res;
  68. rc = sqlite3_prepare_v2(conn, "UPDATE users SET name=?, email=?, phone=?, username=? WHERE id=?", -1, &update_res, 0);
  69. if (rc != SQLITE_OK) {
  70. cerr << "Error preparing statement: " << sqlite3_errmsg(conn) << endl;
  71. sqlite3_close(part_conn);
  72. sqlite3_close(conn);
  73. return 1;
  74. }
  75.  
  76. sqlite3_bind_text(update_res, 1, name, -1, SQLITE_STATIC);
  77. sqlite3_bind_text(update_res, 2, email, -1, SQLITE_STATIC);
  78. sqlite3_bind_text(update_res, 3, phone, -1, SQLITE_STATIC);
  79. sqlite3_bind_text(update_res, 4, username, -1, SQLITE_STATIC);
  80. sqlite3_bind_int(update_res, 5, id);
  81.  
  82. sqlite3_step(update_res);
  83. sqlite3_finalize(update_res);
  84. }
  85. else {
  86. sqlite3_stmt* insert_res;
  87. rc = sqlite3_prepare_v2(conn, "INSERT INTO users VALUES (?, ?, ?, ?, ?)", -1, &insert_res, 0);
  88. if (rc != SQLITE_OK) {
  89. cerr << "Error preparing statement: " << sqlite3_errmsg(conn) << endl;
  90. sqlite3_close(part_conn);
  91. sqlite3_close(conn);
  92. return 1;
  93. }
  94.  
  95. sqlite3_bind_int(insert_res, 1, id);
  96. sqlite3_bind_text(insert_res, 2, name, -1, SQLITE_STATIC);
  97. sqlite3_bind_text(insert_res, 3, email, -1, SQLITE_STATIC);
  98. sqlite3_bind_text(insert_res, 4, phone, -1, SQLITE_STATIC);
  99. sqlite3_bind_text(insert_res, 5, username, -1, SQLITE_STATIC);
  100.  
  101. sqlite3_step(insert_res);
  102. sqlite3_finalize(insert_res);
  103. }
  104. sqlite3_finalize(result_res);
  105. }
  106. sqlite3_finalize(part_res);
  107. sqlite3_close(part_conn);
  108. }
  109. }
  110.  
  111. closedir(dir);
  112. sqlite3_close(conn);
  113.  
  114. return 0;
  115. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement