SQLite SELECT JOIN и VIEWS в C ++ - PullRequest
       3

SQLite SELECT JOIN и VIEWS в C ++

0 голосов
/ 16 февраля 2012

У меня есть две таблицы в SQLITE и View, где я пытаюсь объединить эти две таблицы (моя идея состоит в том, чтобы получить все строки из table1, где table1.field1 и table2.field99 имеют одинаковое значение.

Tables and View are Table1,Table2 and View1
View code is  "SELECT * FROM Table1 JOIN Table2 ON UPPER(Field1) LIKE UPPER(Table2.Field99)"

Если я запускаю

SELECT * FROM View1; 

или если я запускаю

SELECT * FROM Table1 JOIN Table2 ON UPPER(Field1) LIKE UPPER(Field99);

из оболочки sqlite, он возвращает строки очень хорошо.

Но если я пытаюсь запуститьэти операторы SQL в C ++ с этим кодом:

if(sqlite3_prepare_v2(database,SQLStr,-1,&stmt,0)==SQLITE_OK){
   int cols = sqlite3_column_count(stmt);
   printf("Query OK: %s \nColumns: %i\n", SQLStr, cols);
   while(1) {
      status = sqlite3_step(stmt);
      if(status == SQLITE_ROW) {
         printf("This is a row!\n");
      } else if(status == SQLITE_DONE) {
         printf("Rows handled!\n");
         break;
      } else {
         printf("Other status!\n");
         break;
      }
   }
}

Он просто возвращает:

Rows handled: SELECT * FROM View1; 
Columns: 7
Rows handled!

Но он не возвращает никаких строк, как это делает оболочка. (должно быть "Thisявляется строкой! "напечатано для каждой строки в запросе. Я пытался добавить имена таблиц в запросы, но без помощи. Я также пытался запустить, например, SELECT * FROM Table1; а затем C ++ возвращает строки. Это так, что SQLITE вC ++ не может обрабатывать JOINS или Views?

1 Ответ

1 голос
/ 22 февраля 2012

если вы хотите собрать строки, тогда используйте Sqlite3_exec () API или столбец API.sqlite3_step () оценивает только подготовленный оператор, но не получает результаты, для этого вам нужно использовать другой доступный API, или вы можете использовать sqlite3_exec, которыйявляется оберткой.

проверьте следующую ссылку http://www.sqlite.org/c3ref/funclist.html http://www.sqlite.org/cintro.html

Всего наилучшего.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...