int DbReadStudents (){ int rc; sqlite3* db = DbOpen(); rc = DbCeckTableExistance(db); if ( db == NULL || rc == -1 ) { sqlite3_close(db); return DATABASE_ERROR; } char *err_msg = 0; printf("Name\tAverage\n"); rc = sqlite3_exec(db, SQL_SELECT_ALL , printRow, 0, &err_msg); if (rc != SQLITE_OK ) { fprintf(stderr, "Failed to select data\n"); fprintf(stderr, "SQL error: %s\n", err_msg); sqlite3_free(err_msg); sqlite3_close(db); return 1; } sqlite3_close(db); return READ_STUDENTS_SUCCESS; }
int DbAddStudent(char name[25], char average[5]) { int rc; sqlite3* db = DbOpen(); rc = DbCeckTableExistance(db); if ( db == NULL || rc == -1 ) { sqlite3_close(db); return DATABASE_ERROR; } char *err_msg = 0; char sql[200]; sprintf (sql, SQL_ADD_STUDENT, name, average); printf("%s\n", sql); rc = sqlite3_exec(db, sql, 0, 0, &err_msg); if (rc != SQLITE_OK ) { if ( rc == USER_EXISTS ) { printf("%s\n", USER_EXISTS_ERROR_MESSAGE); return ADD_STUDENT_USER_EXIST; } else { fprintf(stderr, "SQL error: %s\n", err_msg); fprintf(stderr, "SQL error: %d\n", rc); return DATABASE_ERROR; } sqlite3_free(err_msg); sqlite3_close(db); } sqlite3_close(db); return ADD_STUDENT_SUCCESS; }
int DbUpdateStudent (char currentName[25], char newName[25], char average[5]) { int rc; sqlite3* db = DbOpen(); rc = DbCeckTableExistance(db); if ( db == NULL || rc == -1 ) { sqlite3_close(db); return DATABASE_ERROR; } char *err_msg = 0; char sql[200]; sprintf (sql, SQL_UPDATE_STUDENT, newName, average, currentName); printf("%s\n", sql); rc = sqlite3_exec(db, sql, 0, 0, &err_msg); if (rc != SQLITE_OK ) { fprintf(stderr, "SQL error: %s\n", err_msg); fprintf(stderr, "SQL error: %d\n", rc); sqlite3_free(err_msg); sqlite3_close(db); } sqlite3_close(db); return UPDATE_STUDENT_SUCCESS; }
// // Open MDS database if needed // const MDS_DB_HANDLE &Directory::cdsa() const { if (mCDSA.DBHandle == CSSM_INVALID_HANDLE) { StLock<Mutex> _(mInitLock); if (mCDSA.DBHandle == CSSM_INVALID_HANDLE) CssmError::check(DbOpen(mCDSA.DLHandle, MDS_CDSA_DIRECTORY_NAME, NULL, CSSM_DB_ACCESS_READ, // access mode NULL, // credentials NULL, // OpenParameters &mCDSA.DBHandle)); } return mCDSA; }
int DbDropTable () { int rc; sqlite3* db = DbOpen(); rc = DbCeckTableExistance(db); if ( db == NULL || rc == -1 ) { sqlite3_close(db); return DATABASE_ERROR; } char *err_msg = 0; rc = sqlite3_exec(db, SQL_DROP_TABLE, 0, 0, &err_msg); if (rc != SQLITE_OK ) { fprintf(stderr, "SQL error: %s\n", err_msg); fprintf(stderr, "SQL error: %d\n", rc); sqlite3_free(err_msg); sqlite3_close(db); } sqlite3_close(db); return 0; }