Ejemplo n.º 1
0
int main(int argc, char *argv[])
{
	if(argc < 3) die("Usage: ex17 <dbfile> <action> [action params]");

		char *filename = argv[1];
		char action = argv[2][0];
		struct Connection *conn;
		int id;


		switch(action) {
			case 'c':
				conn = Database_open(filename, action);
				Database_create(conn);
				Database_write(conn);
				break;

			case 'f':
				if(argc != 4) die("Need a name to find");

				conn = Database_open(filename, action);
				Database_find_name(conn, argv[3]);
				Database_close(conn);
				break;

			case 'g':
				if(argc > 3)  id = atoi(argv[3]);
				if(id >= MAX_ROWS) die("The are already too many records.");
				if(argc != 4) die("Need an ID to get");

				conn = Database_open(filename, action);
				Database_get(conn, id);
				Database_close(conn);
				break;

			case 'a':
				if(argc > 3)  id = atoi(argv[3]);
				//if(argc != 5) die("Need name, and email to set.");

				conn = Database_open(filename, action);
				Database_add(conn, argv[4], argv[5]);
				Database_write(conn);
				Database_close(conn);
				break;

			case 's':
				if(argc > 3)  id = atoi(argv[3]);
				if(id >= MAX_ROWS) die("The are already too many records.");
				if(argc != 6) die("Need id, name, and email to set.");

				conn = Database_open(filename, action);
				Database_set(conn, id, argv[4], argv[5]);
				Database_write(conn);
				Database_close(conn);
				break;

			case 'd':
				if(argc > 3)  id = atoi(argv[3]);
				if(id >= MAX_ROWS) die("The are already too many records.");
				if(argc != 4) die("Need an ID to delete");

				conn = Database_open(filename, action);
				Database_delete(conn, id);
				Database_write(conn);
				Database_close(conn);
				break;

			case 'l':
				conn = Database_open(filename, action);
				Database_list(conn);
				Database_close(conn);
				break;

			case 'u':
				if(argc > 3)  id = atoi(argv[3]);
				if(id >= MAX_ROWS) die("The are already too many records.");
				if(argc != 6) die("Need id, name, and email to set.");

				conn = Database_open(filename, action);
				Database_update(conn, id, argv[4], argv[5]);
				Database_write(conn);
				Database_close(conn);
				break;

			case 'z':
				conn = Database_open(filename, action);
				printf("%d\n", Database_nrows(conn));
				Database_close(conn);
				break;

			default:
				die("Invalid action, only: c=create, a=add, g=get, f=find, s=set, d=delete, l=list, u=update, z=size");
				break;
		}

		return 0;
}
Ejemplo n.º 2
0
int main(int argc, char *argv[])
{
  if (argc < 3) die("USAGE: ex17 <dbfile> <action> [action params]", NULL);

  char *filename = argv[1];
  char action = argv[2][0];
  struct Connection *conn = Database_open(filename, action);
  int id = 0;

  if (argc > 3) id = atoi(argv[3]);
  if (id >= MAX_ROWS) die("There's not that many records.", NULL);

  switch (action) {
  case 'c':
    Database_create(conn);
    Database_write(conn);
    break;

  case 'g':
    if (argc !=4) die("Need an id to get.", NULL);

    Database_get(conn, id);
    break;

  case 's':
    if (argc != 6) die("Need id, name, email to set.", NULL);

    Database_set(conn, id, argv[4], argv[5]);
    Database_write(conn);
    break;

  case 'd':
    if (argc != 4) die("Need id to delete.", NULL);

    Database_delete(conn, id);
    Database_write(conn);
    break;

  case 'f':
    if (argc != 5) die("Need attribute, value to find", NULL);

    char attribute = argv[3][0];
    char *value = argv[4];

    if (attribute == 'e') {
      Database_find_email(conn, value);
    } else {
      Database_find_name(conn, value);
    }
    break;

  case 'l':
    Database_list(conn);
    break;

  default:
    die("Invalid action, only: c=create, g=get, f=find, s=set, d=del, l=list.",
        NULL);
  }

  Database_close(conn);

  return 0;
}