2012-04-29 2 views
0

Я пытаюсь передать мою базу данных sqlite через функцию, а затем снова в другую. Вот мой код.Sqlite прохождение базы данных через функции

//database Name 
// Create a handle for database connection, create a pointer to sqlite3 
sqlite3 *dataDB; 

//I send it through to the function here 
// Execute the query for creating table 
retval = sqlite3_exec(dataDB,create_students,0,0,0); 

Мои прототипы:

int readInFiles(sqlite3 ** dataDB); 
void addCourse(sqlite3 ** dataDB, struct course,int k); 

вызова из функции readInFiles:

addCourse(&dataDB,deg,k); 

Вот моя ошибка:

"database.c", line 50: warning: argument #1 is incompatible with prototype: 
     prototype: pointer to pointer to struct sqlite3 {} : "database.h", line 51 
+0

Пожалуйста, откажитесь от моих прав, если я неправильно понял комментарии в вашем коде. – Mat

ответ

1

Изнутри readInFiles, dataDB имеет тип sqlite3** уже, так что вам нужно позвонить:

addCourse(dataDB,deg,k); 
+0

Im пытается, что на данный момент и получить эту ошибку «database.c», строка 50: предупреждение: аргумент # 1 несовместим с прототипом: prototype: указатель на struct sqlite3 {}: «database.h», строка 51 аргумент : указатель на указатель на struct sqlite3 {} –

+0

Вы что-то изменили? В сообщении говорится, что прототип был «sqlite3 **», но в этом комментарии говорится «sqlite3 *» .... что-то подозрительное. – Mat

+0

Да, это было sqlite *, что я, должно быть, изменил его в какой-то момент благодаря помощнику –

0

Почему бы не просто передать сам указатель? Предполагается, что функции readInFiles и addCourse не должны записываться в указатель, только для объекта sqlite3.

sqlite3 *db; 

retval = sqlite3_exec(db, create_students, 0, 0, 0); 

int readInFiles(sqlite3 *db); 
void addCourse(sqlite3 *db, struct course, int k); 

addCourse(db, deg, k); 

Также dataDB (datadatabase) является своего рода резервируемых :)

0

вы можете попробовать addCourse (dataDB, град, к); Я не понимаю, вы хотите инициализировать db в readInFile? Если вы просто используете db, вы можете объявить, как readInFile (sqlite3 * dataDB) и addCourse (sqlite * dataDB)

Смежные вопросы