static void my_crs_printlist (FILE * fp, DB_QUERY_RESULT * result) { DB_VALUE *value_list, *valp; int cnt, k; int pos; cnt = db_query_column_count (result); value_list = (DB_VALUE *) malloc (cnt * sizeof (DB_VALUE)); if (value_list == NULL) { return; } fprintf (fp, "================= Q U E R Y R E S U L T S " "=================\n"); fprintf (fp, "\n"); pos = db_query_first_tuple (result); while (pos == DB_CURSOR_SUCCESS) { if (db_query_get_tuple_valuelist (result, cnt, value_list) != NO_ERROR) { goto cleanup; } fprintf (fp, "\n "); for (k = 0, valp = value_list; k < cnt; k++, valp++) { fprintf (fp, " "); if (DB_VALUE_TYPE (valp) == DB_TYPE_SET || DB_VALUE_TYPE (valp) == DB_TYPE_MULTISET || DB_VALUE_TYPE (valp) == DB_TYPE_SEQUENCE) { my_db_set_print (fp, DB_GET_SET (valp)); } else { db_value_fprint (fp, valp); } fprintf (fp, " "); } /* clear the value list */ for (k = 0, valp = value_list; k < cnt; k++, valp++) { db_value_clear (valp); } pos = db_query_next_tuple (result); } fprintf (fp, "\n"); cleanup: free (value_list); }
int main (int argc, char *argv[]) { float disk_compat_level = 0.0f; char *prog_name; const char *qp1 = "select db_user, password.password from db_user"; DB_VALUE user_val, password_val; MOP user_class; MOP user; char *db_name; char *password; char *decoded_str; char *encoded_str; int retval, error; DB_QUERY_RESULT *query_result; DB_QUERY_ERROR query_error; char out_buf[128]; if (argc < 2) { printf ("usage : %s databasename\n", argv[0]); return 1; } prog_name = argv[0]; db_name = argv[1]; AU_DISABLE_PASSWORDS (); db_set_client_type (DB_CLIENT_TYPE_ADMIN_UTILITY); db_login ("dba", NULL); db_restart (prog_name, 0, db_name); error = db_execute (qp1, &query_result, &query_error); if (error > 0) { error = db_query_first_tuple (query_result); while (error == NO_ERROR) { retval = db_query_get_tuple_value (query_result, 0, &user_val); if (retval != NO_ERROR) { printf ("%s\n", db_error_string (1)); return 1; } retval = db_query_get_tuple_value (query_result, 1, &password_val); if (retval != NO_ERROR) { printf ("%s\n", db_error_string (1)); return 1; } if (DB_IS_NULL (&user_val) || DB_IS_NULL (&password_val)) { error = db_query_next_tuple (query_result); continue; } user = db_get_object (&user_val); password = db_get_string (&password_val); retval = io_relseek_old (password, 1, out_buf); if (retval != NO_ERROR) { printf ("%s\n", db_error_string (1)); return 1; } retval = au_set_password (user, out_buf); if (retval != NO_ERROR) { printf ("%s\n", db_error_string (1)); return 1; } error = db_query_next_tuple (query_result); } db_query_end (query_result); } db_commit_transaction (); db_shutdown (); return 0; }