Чтобы ускорить вставку таблицы, я объединил операторы вставки (все заканчиваются точкой с запятой) в одну строку (sqlCode
), которая ПОДГОТОВЛЯЕТСЯ, затем СТЕПИТ.
В моем 10000 записейтестовый файл, но только 1000 вставленных записей в таблице.
Что я делаю не так?
I знаю я должен привязать параметры к операторам вставки, но я новк этому и учиться: связанные параметры будут дальше.Кроме того, возвращаемое значение (0) сбрасывает счетчик, используемый в других местах.
Спасибо.
Франк.
int loadBloc( sqlite3 *db, char *sqlCode )
{
int i;
int rc;
sqlite3_stmt *stmt = NULL;
/* TRANSACT !! */
sqlite3_exec(db, "BEGIN", 0, 0, 0);
//printf("%d\n",strlen(sqlCode));
rc = sqlite3_prepare_v2( db, sqlCode, -1 , &stmt, NULL );
checkRC( db, rc,SQLITE_OK , "Error: Failed to prepare.\n" );
rc = sqlite3_step(stmt);
checkRC( db, rc,SQLITE_DONE, "Error: Failed to load.\n" );
sqlite3_exec(db, "COMMIT", 0, 0, 0);
sqlite3_finalize(stmt);
sqlCode[0] = '\0';
return 0;
}