dataplay.c 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #include <sqlite3.h>
  2. #include <stdio.h>
  3. #include <string.h>
  4. void datado(void) {
  5. sqlite3 *db;
  6. char sqlbuffer[256];
  7. sqlite3_stmt *stmt;
  8. int rc;
  9. const char *database = "test.db";
  10. rc = sqlite3_open(database, &db);
  11. if (rc) {
  12. printf("Error opening database %s : %s", database, sqlite3_errmsg(db));
  13. return;
  14. }
  15. // unsure
  16. sqlite3_busy_timeout(db, 5000);
  17. strcpy(sqlbuffer, "SELECT * FROM USER;");
  18. sqlite3_prepare_v2(db, sqlbuffer, strlen(sqlbuffer) + 1, &stmt, NULL);
  19. while (sqlite3_step(stmt) == SQLITE_ROW) {
  20. // total columns = sqlite_3_column_count(stmt);
  21. int i = sqlite3_column_int(stmt, 0);
  22. printf("%s %d : %s %s / %s %s\n", sqlite3_column_name(stmt, 0), i,
  23. sqlite3_column_name(stmt, 1), sqlite3_column_text(stmt, 1),
  24. sqlite3_column_name(stmt, 2), sqlite3_column_text(stmt, 2));
  25. };
  26. sqlite3_finalize(stmt);
  27. // for now
  28. // NEXT!
  29. char nick[] = "captain";
  30. // https://stackoverflow.com/questions/973541/how-to-set-sqlite3-to-be-case-insensitive-when-string-comparing#973785
  31. strcpy(sqlbuffer, "SELECT id FROM USER WHERE nick=? COLLATE NOCASE");
  32. // captain will now match Captain
  33. sqlite3_prepare_v2(db, sqlbuffer, strlen(sqlbuffer) + 1, &stmt, NULL);
  34. sqlite3_bind_text(stmt, 1, nick, strlen(nick), SQLITE_STATIC);
  35. rc = sqlite3_step(stmt);
  36. if (rc == SQLITE_ROW) {
  37. int nid = sqlite3_column_int(stmt, 0);
  38. printf("%s ID is %d\n", nick, nid);
  39. } else {
  40. printf("Unable to locate record.\n");
  41. }
  42. sqlite3_finalize(stmt);
  43. sqlite3_close(db);
  44. }
  45. int main(int argc, char *argv[]) {
  46. printf("Welcome.\n");
  47. datado();
  48. return 0;
  49. }