Exemple #1
0
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);
}
Exemple #2
0
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;
}