Esempio n. 1
0
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;
}
Esempio n. 2
0
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;
}
Esempio n. 3
0
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;
}
Esempio n. 5
0
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;
}