您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ Database_close函数代码示例

51自学网 2021-06-01 20:25:15
  C++
这篇教程C++ Database_close函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中Database_close函数的典型用法代码示例。如果您正苦于以下问题:C++ Database_close函数的具体用法?C++ Database_close怎么用?C++ Database_close使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了Database_close函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: main

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 = Database_open(filename, action);  int id = 0;  char *name = "/0";  if(strcmp(argv[2],"f")==0){    name = argv[3];  }  else if(argc > 3) {    id = atoi(argv[3]);  }    if(id >= MAX_ROWS) die("There's not that many records");  switch(action) {  case 'c':    Database_create(conn);    Database_write(conn);    break;  case 'g':    if(argc != 4) die("Need an id to get");    Database_get(conn, id);    break;  case 'd':    if(argc != 4) die("Need id to delete");    Database_delete(conn, id);    Database_write(conn);    break;  case 's':    if(argc != 6) die("need id, name, email to set");    Database_set(conn, id, argv[4], argv[5]);    Database_write(conn);    break;  case 'l':    Database_list(conn);    break;  case 'f':    Database_find(conn, name);    break;  default:    die("Invalid action, only: c=create, g=get, s=set, d=del, l=list");  }  Database_close(conn);    return 0;}
开发者ID:imnotthomas,项目名称:cthehardway,代码行数:59,


示例2: main

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];Database_open(filename, action);int id = 0;if (action != 'c' && action != 'f' && argc > 3) {id = atoi(argv[3]);if (id >= conn->db->max_rows)	die("There are not that many records.");}switch (action) {// Createcase 'c':if (argc != 5)	die("MAX_DATA and MAX_ROWS required.");conn->db->max_data = atoi(argv[3]);conn->db->max_rows = atoi(argv[4]);Database_create();Database_write();break;// Getcase 'g':if (argc != 4)	die("Need an ID to get.");Database_get(id);break;// Setcase 's':if (argc != 6)	die("Need ID, name, and email to set.");Database_set(id, argv[4], argv[5]);Database_write();break;// Findcase 'f':if (argc != 4)	die("Need a name or email to search for.");Database_find(argv[3]);break;// Deletecase 'd':if (argc != 4)	die("Need ID to delete.");Database_delete(id);Database_write();break;// Listcase 'l':Database_list();break;default:die("Invalid action, only: c=create, g=get, s=set, d=delete, l=list");}Database_close();return 0;}
开发者ID:edek437,项目名称:justcode,代码行数:58,


示例3: main

int main(int argc, char *argv[]){	if(argc < 3) die("USAGE: ex17 <dbfile> <action> [action params]", NULL);	int max_data = MAX_DATA;	int max_rows = MAX_ROWS;	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.", conn);	switch(action) {		case 'f':			if(argc != 4) die("Need a name to find", conn);			Database_find(conn, argv[3]);			break;		case 'c':			max_data = argv[3] ? atoi(argv[3]) : MAX_DATA;			max_rows = argv[4] ? atoi(argv[4]) : MAX_ROWS;			Database_create(conn, max_data, max_rows);			Database_write(conn);			break;		case 'g':			if(argc != 4) die("Need an id to get", conn);			Database_get(conn,id);			break;		case 's':			if(argc != 6) die("Need id, name, email to set", conn);			Database_set(conn, id, argv[4], argv[5]);			Database_write(conn);			break;		case 'd':			if(argc != 4) die("Need id to delete", conn);			Database_delete(conn, id);			Database_write(conn);			break;		case 'l':			Database_list(conn);			break;		default:			die("Invalid action, only: c=create, g=get, s=set, d=del, l=list", conn);	}	Database_close(conn);	return 0;}
开发者ID:paulogeyer,项目名称:lcthw,代码行数:57,


示例4: die

void die(const char* message, struct Connection* conn){	if(errno){		perror(message);	} else {		printf("ERROR:%s/n", message);	}	Database_close(conn);	exit(1);}
开发者ID:jadan,项目名称:LCTHW,代码行数:9,


示例5: die

void die(const char *message) {	if (errno) {		perror(message);	} else {		printf("ERROR: %s/n", message);	}	Database_close();	exit(1);}
开发者ID:edek437,项目名称:justcode,代码行数:9,


示例6: main

int main(int argc, char *argv[]){  char usage[64];  sprintf(usage, "USAGE: %s <dbfile> <action> [action params]", basename(argv[0]));  if(argc < 3) die(usage, 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.", conn);  switch(action) {    case 'c':      Database_create(conn);      Database_write(conn);      break;    case 'g':      if(argc != 4) die("Need an id to get", conn);      Database_get(conn, id);      break;    case 's':      if(argc != 7) die("Need id, name, email, and street to set", conn);      Database_set(conn, id, argv[4], argv[5], argv[6]);      Database_write(conn);      break;    case 'd':      if(argc != 4) die("Need id to delete", conn);      Database_delete(conn, id);      Database_write(conn);      break;    case 'f':      if(argc != 4) die("Need something to find", conn);      Database_find(conn, argv[3]);      break;    case 'l':      Database_list(conn);      break;    default:      die("Invalid action, only: c=create, g=get, s=set, d=del, l=list, f=find", conn);  }  Database_close(conn);  return 0;}
开发者ID:meatballhat,项目名称:box-o-sand,代码行数:57,


示例7: main

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) && (action != 'c') && (action != 'f')) id = atoi(argv[3]);	//if(id >= conn->db->MAX_ROWS) die("There's not that many records.", conn);	switch(action) {		case 'c':			Database_create(conn, atoi(argv[3]), atoi(argv[4]));			Database_write(conn);			break;		case 'g':			if(argc != 4) die("Need an id to get", conn);			Database_get(conn, id);			break;		case 's':			if(argc != 7) die("Need id, name, email and age to set", conn);			Database_set(conn, id, argv[4], argv[5], atoi(argv[6]));			Database_write(conn);			break;		case 'd':			if(argc != 4) die("Need an id to delete", conn);			Database_delete(conn, id);			Database_write(conn);			break;		case 'l':			Database_list(conn);			break;		case 'f':			Database_find(conn, argv[3], argv[4]);			break;		default:			die("Invalid action, only: c=create, g=get, s=set, d=delete, l=list", conn);	}	Database_close(conn);	return 0;}
开发者ID:osynetskyi,项目名称:hardc,代码行数:54,


示例8: die

void die(Connection* c, const char* message) {         if(errno) {                 perror(message);         } else {                 printf("ERROR: %s/n", message);         }         if(c) { Database_close(c); }         exit(1);}
开发者ID:fosskers,项目名称:playground,代码行数:11,


示例9: die

// function for aborting with an errorvoid die(const char *message, struct Connection *conn){  if(errno) { // for when a function returns an error    perror(message);  } else { // for otherwise    printf("ERROR: %s/n", message);  }  Database_close(conn);  exit(1);}
开发者ID:JonathanFrederick,项目名称:learn-c-the-hard-way,代码行数:13,


示例10: main

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];	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.");		switch(action) {		case 'c':			Database_create();			Database_write();			break;					case 'g':			if(argc != 4) die("Need an id to get");						Database_get(id);			break;				case 's':			if(argc != 6) die("Need id, name, email to set");						Database_set(id, argv[4], argv[5]);			Database_write();			break;					case 'd':			if(argc != 4) die("Need an id to delete)");						Database_delete(id);			Database_write();			break;					case 'l':			Database_list();			break;				case 'f':			Database_find(argv[3]);			break;		default:			die("Invalid action, only c=create, g=get, s=set, d=del, l=list");	}		Database_close();	return 0;}
开发者ID:smwhit,项目名称:LearnCTheHardWay,代码行数:52,


示例11: main

int main(int argc, char *argv[]){    char *filename = argv[1];    char action = argv[2][0];    struct Connection *conn = Database_open(filename, action);    int id = 0;    if (argc < 3) die("USAGE: ex17 <dbfile> <action> [action params]", conn);    if(argc > 3) id = atoi(argv[3]);    if(id >= MAX_ROWS) die("There's not that many records.", conn);    switch(action) {    case 'c':        if(argc == 5) Database_create(conn, atoi(argv[3]), atoi(argv[4]));        else Database_create(conn, 0, 0);        Database_write(conn);        break;    case 'g':        if(argc != 4) die("Need an id to get", conn);        Database_get(conn, id);        break;    case 's':        if(argc != 6) die("Need id, name, email to set.", conn);        Database_set(conn, id, argv[4], argv[5]);        Database_write(conn);        break;    case 'd':        if(argc != 4) die("Need id to delete", conn);        Database_delete(conn, id);        Database_write(conn);        break;    case 'l':        Database_list(conn);        break;    default:        die("Invalid action, only: c=create, g=get, s=set, d=del, l=list, r=resize", conn);    }    Database_close(conn);    return 0;}
开发者ID:tnesbit450,项目名称:learning,代码行数:51,


示例12: die

void die(struct Connection *conn, const char *message) {    if (conn) {        Database_close(conn);    }    if (errno) {        // perror prints error message to stderr        perror(message);    } else {        printf("ERROR: %s/n", message);    }    // exit with non-zero code 1 to indicate a problem occurred    exit(1);}
开发者ID:beepscore,项目名称:LearnCTheHardWay,代码行数:14,


示例13: die

/* * Unified error logging and clean up */void die(const char *message, struct Connection *conn){    if(NULL != conn){        Database_close(conn);    }    if (errno){ //if a system call fails, this value will be set        perror(message); //this will print the error message to stderror    } else {        printf("ERROR: %s/n", message);    }        exit(1);}
开发者ID:ssugrim,项目名称:LCTHWex,代码行数:17,


示例14: main

int main(int argc, char *argv[]){    if(argc < 3) die("USAGE: mydb <dbfile> <action> [action params]");    char *filename=argv[1];    char action = argv[2][0];    // will open file. Only creates file if action is 'c'    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.");    switch(action) {        case 'c':            Database_create(conn);            Database_write(conn);            break;        case 'g':            if (argc != 4) die("Need an id to get");            Database_get(conn, id);            break;        case 's':            if (argc != 6) die("Need id, name, email to set");            Database_set(conn, id, argv[4], argv[5]);            Database_write(conn);            break;        case 'l':            Database_list(conn);            break;        default:            die("Invalid action, only: c=create, g=get, s=set, d=del, l=list");    }    Database_close(conn);    return 0;}
开发者ID:baloi,项目名称:c_me,代码行数:41,


示例15: Database_create

//.........这里部分代码省略.........}void Database_set(struct Connection *conn, int id, const char *name, const char *email){    struct Address *addr = &conn->db->rows[id]; //get the i element of rows, which is in db, which is in conn, then get the address of the above    if(addr->set) die("Already set, delete it first.");    addr->set = 1;        char *res = strncpy(addr->name, name, MAX_DATA);    // just fix prinf in address call, far easier    if (!res) die("Name copy failed");    res = strncpy(addr->email, email, MAX_DATA);    if(!res) die("Email copy failed");}void Database_get(struct Connection *conn, int id) //fetch the database with a certain id{    struct Address *addr = &conn->db->rows[id];    if(addr->set){         Address_print(addr); //print address    } else {        die("ID is not set.");    }}void Database_delete(struct Connection *conn, int id) //this function deletes the database{    struct Address addr = {.id = id, .set = 0}; //set temporary local address tonull    conn->db->rows[id] = addr;}void Database_list(struct Connection *conn) //list the databases{    int i = 0;    struct Database *db = conn->db; //new pointer    for(i = 0; i < MAX_ROWS; i++) {        struct Address *cur = &db->rows[i]; //set the rows to the address of db        if(cur->set) {            Address_print(cur);        }    }}int main(int argc, char *argv[]){    if(argc < 3) die ("USAGE: ex17 <dbfile> <action> [action params]");    char *filename = argv[1]; //our filename    char action = argv[2][0];    struct Connection *conn = Database_open(filename, action); //open a database    int id = 0;    if(argc > 3) id = atoi(argv[3]);    if(id >= MAX_ROWS) die("There's not that many records.");    switch(action) {        case 'c':            Database_create(conn);            Database_write(conn);            break;        case 'g':            if(argc != 4) die("Need an id to get.");            Database_get(conn, id);            break;        case 's':            if(argc != 6) die("Need id, name, email to set");            Database_set(conn, id, argv[4], argv[5]);            Database_write(conn);            break;        case 'd':            if(argc != 4) die("Need id to delete.");            Database_delete(conn, id);            Database_write(conn);            break;        case 'l':            Database_list(conn);            break;                    default:             die("Invalid action, only: c=create, g=get, s=set, d=del, l=list");    }        Database_close(conn);    return 0;}
开发者ID:OppenheimerAndTheMartians,项目名称:LearnCTheHardWay,代码行数:101,


示例16: Database_create

//.........这里部分代码省略.........    struct Address *addr = &conn->db->rows[id];    if(addr->set) die("Already set, delete it first");/* &conn->db->rows[i]    reads "get the i element of rows, which is in db, which is in conn, then get the address of (&) it */    addr->set = 1;    // WARNING: bug, read the "How To Break It" and fix this    char *res = strncpy(addr->name, name, MAX_DATA);    // demonstrate the strncpy bug    if(!res) die("Name copy failed");    res = strncpy(addr->email, email, MAX_DATA);    if(!res) die("Email copy failed");}void Database_get(struct Connection *conn, int id){    struct Address *addr = &conn->db->rows[id];    if(addr->set) {        Address_print(addr);    } else {        die("ID is not set");    }}void Database_delete(struct Connection *conn, int id){    struct Address addr = {.id = id, .set = 0};    conn->db->rows[id] = addr;//  This trick makes sure that all fields but set and id are initialized to 0s        // and is actually easier to write.// The dot before the fieldname is for giving initial values to struct members at declaration}void Database_list(struct Connection *conn){    int i = 0;    struct Database *db = conn->db;    for(i = 0; i < MAX_ROWS; i++) {        struct Address *cur = &db->rows[i];        if(cur->set) {            Address_print(cur);        }    }}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 = Database_open(filename, action);    int id = 0;//  The atoi is to take the string for the id on the command line and convert it to the int id variable    if(argc > 3) id = atoi(argv[3]);    if(id >= MAX_ROWS) die("There's not that many records.");    switch(action) {        case 'c':            Database_create(conn);            Database_write(conn);            break;        case 'g':            if(argc != 4) die("Need an id to get");            Database_get(conn, id);            break;        case 's':            if(argc != 6) die("Need id, name, email to set");            Database_set(conn, id, argv[4], argv[5]);            Database_write(conn);            break;        case 'd':            if(argc != 4) die("Need id to delete");            Database_delete(conn, id);            Database_write(conn);            break;        case 'l':            Database_list(conn);            break;        default:            die("Invalid action, only: c=create, g=get, s=set, d=del, l=list");    }    Database_close(conn);    return 0;}
开发者ID:timerg,项目名称:C_Learn,代码行数:101,


示例17: main

int main(int argc, char *argv[]){    struct Connection *conn = NULL;    if (argc < 3)        die("USAGE: ex17 <dbfile> <action> [action params]", conn);    char *filename = argv[1];    char action = argv[2][0];    conn = Database_open(filename, action);    int id = 0;    if (argc > 3) id = atoi(argv[3]);    if (action != 'c') {        if (id >= MAX_ROWS)            die("There's not that many records.", conn);    }    switch (action) {    case 'c':        Database_create(conn);        Database_write(conn);        break;    case 'g':        if (argc != 4)            die("Need an id to get", conn);        Database_get(conn, id);        break;    case 's':        if (argc != 6)            die("Need id, name, email to set", conn);        Database_set(conn, id, argv[4], argv[5]);        Database_write(conn);        break;    case 'd':        if (argc != 4)            die("Need id to delete", conn);        Database_delete(conn, id);        Database_write(conn);        break;    case 'l':        Database_list(conn);        break;    case 'f':        if (argc != 4)            die("Need to provide a string to search matches.", conn);        Database_find(conn, argv[3]);        break;    default:        die("Invalid action: c=create, g=get, s=set, d=del, l=list", conn);    }    Database_close(conn);    return 0;}
开发者ID:BobFromAccounting,项目名称:c-training,代码行数:67,


示例18: Database_create

//.........这里部分代码省略.........	voidDatabase_get ( struct Connection *conn, int id ){	struct Address *addr = &conn->db->rows[id];	if(addr->set){		Address_print(addr);	}else{		die("ID IS NOT SET");	}}		/* -----  end of function Database_get  ----- *//*  * ===  FUNCTION  ====================================================================== *         Name:  Database_delete *  Description:   * ===================================================================================== */	voidDatabase_delete ( struct Connection *conn, int id ){	struct Address addr = {.id = id, .set=0};	conn->db->rows[id] = addr;}		/* -----  end of function Database_delete  ----- *//*  * ===  FUNCTION  ====================================================================== *         Name:  Database_list *  Description:   * ===================================================================================== */	voidDatabase_list (struct Connection *conn){	int i=0;	struct Database *db = conn->db;	for (i=0;i<MAX_ROWS;i++)	{		struct Address *cur = &db->rows[i];		if(cur->set){			Address_print(cur);		}	}}		/* -----  end of function Database_list  ----- */#include	<stdlib.h>/*  * ===  FUNCTION  ====================================================================== *         Name:  main *  Description:   * ===================================================================================== */	intmain ( int argc, char *argv[] ){	if(argc<3) die("USAGE:ex17 <dbfile> <action>[action params]");	char *filename = argv[1];	char action = argv[2][0];//	printf("mode is %c" ,action);////	printf("filename is %s", filename);//	struct Connection *conn = Database_open(filename,action);	int id=0;	if(argc > 3)id=atoi(argv[3]);	if(id >= MAX_ROWS) die("this is not that many record");	switch(action){		case 'c':			Database_create(conn);			Database_write(conn);			break;		case 'g':			if(argc!=4)die("need an id to get");			Database_get(conn, id);			break;		case 's':			if(argc != 6)die("need id name email to set");			Database_set(conn, id, argv[4], argv[5]);			Database_write(conn);			break;		case 'd':			if(argc !=4)die("need id to delete");			Database_delete(conn, id);			Database_write(conn);			break;		case 'l':			Database_list(conn);			break;		default:			die("invalid action, only c:create, g=get,s=set,d=del, l=list");	}	Database_close(conn);	return EXIT_SUCCESS;}				/* ----------  end of function main  ---------- */
开发者ID:saltyx,项目名称:LearnCTheHardWay,代码行数:101,


示例19: Database_create

void Database_create(struct Connection *conn) {    int i = 0;    for (i = 0; i < MAX_ROWS; i++) {        struct Address addr = { .id = i, .set = 0};        conn->db->rows[i] = addr;    }}void Database_set(struct Connection *conn, int id, const char *name, const char *email) {        struct Address *addr = &conn->db->rows[id];        if (addr->set) {        die("Record already set - delete first", conn);    }    addr->set = 1;    char *res = strncpy(addr->name, name, MAX_DATA);    if (!res) {        die("name copy failed", conn);    }    res = strncpy(addr->email, email, MAX_DATA);    if (!res) {        die("email copy failed", conn);    }}void Database_get(struct Connection *conn, int id) {    struct Address *addr = &conn->db->rows[id];    if (addr->set) {        Address_print(addr);    } else {        die("ID is not set", conn);    }}void Database_delete(struct Connection *conn, int id) {    struct Address addr = {.id = id, .set = 0};    conn->db->rows[id] = addr;}void Database_list(struct Connection *conn) {    int i = 0;    struct Database *db = conn->db;    for (i = 0; i < MAX_ROWS; i++) {        struct Address *addr = &db->rows[i];        if (addr->set) {            Address_print(addr);            printf("/n");        }    }}void die(const char *message, struct Connection *conn) {    if (errno) {        perror(message);    } else {        printf("ERROR %s/n", message);    }    Database_close(conn);    exit(1);}int main(int argc, char *argv[]) {    if (argc < 3) {        die("USAGE: simple-database <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("ID exceeds maximum database capacity", conn);    }    switch(action) {        case 'c':            Database_create(conn);            Database_write(conn);            break;        case 'g':            if (argc != 4) {                die("An ID is required for the get operation", conn);            }            Database_get(conn, id);            break;        case 's':            if (argc != 6) {                die("Need an ID, name, and email for the set operation", conn);            }//.........这里部分代码省略.........
开发者ID:TempleCloud,项目名称:tutorials,代码行数:101,


示例20: Database_create

void Database_create(struct Connection *conn, int max_rows, int max_data){  conn->db->max_rows = max_rows;  conn->db->max_data = max_data;  Database_alloc_rows(conn);  int i = 0;  for(i = 0; i < max_rows; i++) {    struct Address addr = { .id = i, .set = 0};    addr.email = malloc(sizeof(char) * conn->db->max_data);    addr.name = malloc(sizeof(char) * conn->db->max_data);    conn->db->rows[i] = addr;  }}struct Connection *Database_open(const char *filename, char mode){  struct Connection *conn = malloc(sizeof(struct Connection));  if(!conn) die("Memory error", conn);  conn->db = malloc(sizeof(struct Database));  if(!conn->db) die("Memory error", conn);  if(mode == 'c') {    conn->file = fopen(filename, "w");  } else {    conn->file = fopen(filename, "r+");    if(conn->file) {      Database_load(conn);    }  }  if(!conn->file) die("Failed to open the file", conn);  return conn;}void Database_close(struct Connection *conn) {  if(conn) {    if(conn->file) fclose(conn->file);    if(conn->db->rows) free(conn->db->rows);    if(conn->db) free(conn->db);    free(conn);  }}void Database_set(struct Connection *conn, int id, const char *name, const char *email){  struct Address *addr = &conn->db->rows[id];  if(addr->set) die("Already set, delete it first", conn);  addr->set = 1;  //WARNING: bug, read the "How to break it" and fix this  char *res = strncpy(addr->name, name, conn->db->max_data);  //demonstrate the strncpy bug  if(!res) die("Name copy failed", conn);  res = strncpy(addr->email, email, conn->db->max_data);  if(!res) die("Email copy failed", conn);}void Database_get(struct Connection *conn, int id){  if(id > conn->db->max_rows) {    die("There's not that many rows", conn);  }  struct Address *addr = &conn->db->rows[id];  if(addr->set) {    Address_print(addr);  } else {    die("ID not set", conn);  }}void Database_delete(struct Connection *conn, int id) {  struct Address addr = {.id = id, .set = 0};  addr.email = malloc(sizeof(char) * conn->db->max_data);  addr.name = malloc(sizeof(char) * conn->db->max_data);  conn->db->rows[id] = addr;}void Database_list(struct Connection *conn) {  int i = 0;  for(i=0; i< conn->db->max_rows; i++) {    struct Address *cur = &(conn->db->rows[i]);    if(cur->set) {      Address_print(cur);    }  }}//.........这里部分代码省略.........
开发者ID:mohangk,项目名称:c_the_hardway,代码行数:101,


示例21: Database_create

void Database_create(struct Connection *conn){	int i = 0;	for(i = 0; i < MAX_ROWS; i++){		//Make a prototype		struct Address addr = {.id = i, .set = 0};		conn->db->rows[i] = addr;	}}void Database_set(struct Connection *conn, int id, const char *name, const char *email){	struct Address *addr = &conn->db->rows[id];	if(addr->set) die("Already set!");	addr->set = 1;	char *res = strncpy(addr->name, name, MAX_DATA);	if(!res) die("Name copy failed");		res = strncpy(addr->email, email, MAX_DATA);	if(!res) die("Email copy failed");}void Database_get(struct Connection *conn, int id){	struct Address *addr = &conn->db->rows[id];		if(addr->set){		Address_print(addr);	} else {		die("ID not set!");	}}void Database_delete(struct Connection *conn, int id){	struct Address addr = {.id = id, .set = 0};	conn->db->rows[id] = addr;}void Database_list(struct Connection *conn){	int i = 0;	struct Database *db = conn->db;	for(i = 0; i < MAX_ROWS; i++){		struct Address *curr = &db->rows[i];		if(curr->set){			Address_print(curr);		}	}}int main(int argc, char *argv[]){		if(argc < 3) die("USAGE: heapstack <dbfile> <action> [action params]");		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("Not enough records");	switch(action) {		case 'c':			Database_create(conn);			Database_write(conn);			break;		case 'g':			if(argc != 4) die("Need an id");			Database_get(conn, id);			break;		case 's':			if(argc != 6) die("Need id, name and email");			Database_set(conn, id, argv[4], argv[5]);			Database_write(conn);			break;		case 'd':			if(argc != 4) die("Need an id");			Database_delete(conn,id);			Database_write(conn);			break;		case 'l':			Database_list(conn);			break;		default:			die("Invalid action");			break;	}		Database_close(conn);	return 0;}
开发者ID:miolfo,项目名称:c-the-hard-way,代码行数:92,


示例22: Database_create

//.........这里部分代码省略.........    addr->set = 1;    // WARNING: bug, read the "How To Break It" and fix this    char *res = strncpy(addr->name, name, conn->db->max_data);    // demonstrate the strncpy bug    if(!res) die("Name copy failed", conn);    res = strncpy(addr->email, email, conn->db->max_data);    if(!res) die("Email copy failed", conn);}void Database_get(struct Connection *conn, int id){    struct Address *addr = &conn->db->rows[id];    if(addr->set) {        Address_print(addr);    } else {        die("ID is not set", conn);    }}void Database_delete(struct Connection *conn, int id){    struct Address addr = {.id = id, .set = 0};    conn->db->rows[id] = addr;}void Database_list(struct Connection *conn){    int i = 0;    struct Database *db = conn->db;    for(i = 0; i < conn->db->max_rows; i++) {        struct Address *cur = &db->rows[i];        if(cur->set) {            Address_print(cur);        }    }}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;    switch(action) {        case 'c':            if(argc != 5) die("Need to specify max data and max rows", conn);            int max_data = atoi(argv[3]);            int max_rows = atoi(argv[4]);            Database_create(conn, max_data, max_rows);            Database_write(conn);            break;        case 'g':            if(argc > 3) id = atoi(argv[3]);            if(id >= conn->db->max_rows) die("There's not that many records.", conn);            if(argc != 4) die("Need an id to get", conn);            Database_get(conn, id);            break;        case 's':            if(argc > 3) id = atoi(argv[3]);            if(id >= conn->db->max_rows) die("There's not that many records.", conn);            if(argc != 6) die("Need id, name, email to set", conn);            Database_set(conn, id, argv[4], argv[5]);            Database_write(conn);            break;        case 'd':            if(argc > 3) id = atoi(argv[3]);            if(id >= conn->db->max_rows) die("There's not that many records.", conn);            if(argc != 4) die("Need id to delete", conn);            Database_delete(conn, id);            Database_write(conn);            break;        case 'l':            Database_list(conn);            break;        default:            die("Invalid action, only: c=create, g=get, s=set, d=del, l=list", conn);    }    Database_close(conn);    return 0;}
开发者ID:johnnadratowski,项目名称:examples,代码行数:101,


示例23: Database_create

//.........这里部分代码省略.........	res = strncpy(addr->email, email, MAX_DATA);		if(!res)		die("Email copy failed.");}void Database_get(struct Connection *conn, int id){	struct Address *addr = &conn->db->rows[id];	if(addr->set)	{		Address_print(addr);	}	else	{		die("ID not set.");	}}void Database_delete(struct Connection *conn, int id){	struct Address addr = { .id = id, .set = 0 };	conn->db->rows[id] = addr;}void Database_list(struct Connection *conn){	struct Database *db = conn->db;	for(int i = 0; i < MAX_ROWS; i++)	{		struct Address *addr = &db->rows[i];		if(addr->set)			Address_print(addr);	}}int main(int argc, char *argv[]){	if(argc < 3)		die("USAGE: ex17 <dbfile> <action> [action parameters].");	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 are not that many records.");	switch(action)	{		case 'c':			Database_create(conn);			Database_write(conn);			break;		case 'g':			if(argc != 4)			{				die("Need an ID to get.");			}						Database_get(conn, id);			break;		case 's':			if(argc != 6)			{				die("Need an ID, Name, and Email to set.");			}						Database_set(conn, id, argv[4], argv[5]);			Database_write_record(conn, id);			break;		case 'd':			if(argc != 4)			{				die("Need an ID to delete.");			}			Database_delete(conn, id);			Database_write_record(conn, id);			break;		case 'l':			Database_list(conn);			break;		default:			die("Invalid action: c=Create, g=Get, s=Set, d=Delete, l=List.");	}	Database_close(conn);	return 0;}
开发者ID:marrick66,项目名称:Misc-C-Code,代码行数:101,


示例24: Database_create

void Database_create(struct Connection *conn) {  int i = 0;  for(i=0; i < MAX_ROWS; i++) {    struct Contact c = { .id = i, .set = 0 };    conn->db->rows[i] = c;  }}void Database_set(struct Connection *conn, int id, const char *name, const char *email) {  struct Contact *c = &conn->db->rows[id]; // TODO: what does the & do to a struct pointer?  if(c->set) die("Contact already set, delete it first");  c->set = 1;  // WARNING: bug, read the "How To Break It" and fix this  char *res = strncpy(c->name, name, MAX_DATA);  if(!res) die("Name copy failed");  res = strncpy(c->email, email, MAX_DATA);  if(!res) die("Email copy failed");}void Database_get(struct Connection *conn, int id) {  struct Contact *c = &conn->db->rows[id];  if(c->set) {    Contact_print(c);  } else {    die("ID not set");  }}void Database_delete(struct Connection *conn, int id) {  struct Contact c = { .id = id, .set = 0 };  conn->db->rows[id] = c;}void Database_list(struct Connection *conn) {  int i = 0;  struct Database *db = conn->db;  for(i = 0; i < MAX_ROWS; i++) {    struct Contact *cursor = &db->rows[i];    if(cursor->set) {      Contact_print(cursor);    }  }}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 = 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.");  switch(action) {    case 'c':      Database_create(conn);      Database_write(conn);      break;    case 'g':      if(argc != 4) die("Need an id to get");      Database_get(conn, id);      break;    case 's':      if(argc != 6) die("Need id, name, email to set");      Database_set(conn, id, argv[4], argv[5]);      Database_write(conn);      break;    case 'd':      if(argc != 4) die("Need id to delete");      Database_delete(conn, id);      Database_write(conn);      break;    case 'l':      Database_list(conn);      break;    default:      die("Invalid action, only: c=create, g=get, s=set, d=del, l=list");  }  Database_close(conn);  return 0;}
开发者ID:oshea,项目名称:snippets,代码行数:91,


示例25: Database_create

void Database_create(struct Connection *conn){  int i = 0;  for (i = 0; i < MAX_ROWS; i++) {    struct Address addr = {.id = i, .set = 0};    conn->db->rows[i] = addr;  };};void Database_delete(struct Connection *conn, int id){  struct Address addr = {.id = id, .set = 0};  conn->db->rows[id] = addr;};void Database_set(struct Connection *conn, int id, const char *restrict name, const char *restrict email){  struct Address *restrict addr = &conn->db->rows[id];  if(addr->set) {    die("Already set, delete it first");  };  addr->set = 1;  char *res = strncpy(addr->name, name, MAX_DATA);  addr->name[ sizeof(name) - 1 ] = '/0';  if(!res) {    die("Name copy failed.");  };  char *res1 = strncopy(addr->email, email, MAX_DATA);  addr->email[ sizeof(email) - 1 ] = '/0';  if(!res1) {    die("Email copy failed");  };};void Database_get(struct Connection *conn, int id){  struct Address addr = {.id = id, .set = 0};  conn->db->rows[id] = addr;};void Database_list(struct Connection *conn){  int i = 0;  struct Database *db = conn->db;  for (i = 0; i < MAX_ROWS; i++) {    struct Address *cur = &db->rows[i];    if(cur->set) {      Address_print(cur);    };  };};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 = 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.");  switch(action) {    case 'c':      Database_create(conn);      Database_write(conn);      break;    case 'g':      if(argc != 4) die("Need an id to get");      Database_get(conn, id);      break;    case 's':      if(argc != 6) die("Need id, name, email to set");      Database_set(conn, id, argv[4], argv[5]);      Database_write(conn);    case 'd':      if(argc != 4) die("Need id to delete");      Database_delete(conn, id);      Database_write(conn);      break;    case 'l':      Database_list(conn);      break;    default:      die("Invalid action, only: c=create, g=get, s=set, d=del, l=list");  };  Database_close(conn);  return 0;};
开发者ID:drStraynj,项目名称:c,代码行数:98,


示例26: Database_create

//.........这里部分代码省略.........}void Database_delete(struct Connection *conn, int id){	struct Address addr = {.id = id, .set = 0};	conn->db->rows[id] = addr;	printf("DB entry deleted/n");}void Database_list(struct Connection *conn){	printf("Printing Database.../n");	int i = 0;	struct Database *db = conn->db;	for(i = 0; i < db->max_rows; i++) {		struct Address *cur = &db->rows[i];		if(cur->set) {			//printf("Is set!");			Address_print(cur);		}		//printf("Is not set!");	}	printf("...Database printed./n");}void Database_find(struct Connection *conn, char *target){	struct Database *db = conn->db;	struct Address *addr;	int i;	printf("Finding %s.../n", target);	for(i = 0; i < db->max_rows; i++) {		addr = &db->rows[i];		if(addr->set == 1) {			if(strstr(addr->name, target) || strstr(addr->email, target))				Address_print(addr);		}	}	printf("All results found./n");}int main(int argc, char* argv[]){	if(argc < 3)		die(NULL, "USAGE: ex17 <dbfile> <action> [action params]");	char* filename = argv[1];	char action = argv[2][0];	struct Connection* conn;	if(action == 'c')		conn = Database_open(filename, action,					atoi(argv[3]), atoi(argv[4]));	else		conn = Database_open(filename, action, 0, 0);	int id = 0;	switch(action) {		case 'c':			if(argc != 5)				die(conn, "Incorrect params.");			Database_create(conn, atoi(argv[3]), atoi(argv[4]));			Database_write(conn);			break;		case 'g':			id = atoi(argv[3]);			if(id > conn->db->max_rows)				die(conn, "ID is greater than number of records.");			if(argc != 4)				die(conn, "Need ID to get.");			Database_get(conn, id);			break;		case 's':			id = atoi(argv[3]);			if(id > conn->db->max_rows)				die(conn, "ID is greater than number of records.");			if(argc != 6)				die(conn, "Need ID, name and email to set.");			Database_set(conn, id, argv[4], argv[5]);			Database_write(conn);			break;		case 'd':			id = atoi(argv[3]);			if(id > conn->db->max_rows)				die(conn, "ID is greater than number of records.");			if(argc != 4)				die(conn, "Need ID to delete.");			Database_delete(conn, id);			Database_write(conn);			break;		case 'l':			Database_list(conn);			break;		case 'f':			Database_find(conn, argv[3]);			break;		default:			die(conn,"Invalid action. c=create, g=get, s=set, d=delete, s=set, f=find.");	}	Database_close(conn);	return 0;}
开发者ID:PaulForey,项目名称:learn-c-the-hard-way,代码行数:101,


示例27: Database_create

void Database_create(struct Connection *conn){    int i = 0;    for (i = 0; i <= MAX_ROWS; i++){        //make a prototype to initialize data to address        struct Address addr = {.id = i, .set = 0};        //assign address rows to the db        conn->db->rows[i] = addr;    }}void Database_set(struct Connection *conn, int id, const char *name, const char *email){    struct Address *addr = &conn->db->rows[id];    if (addr->set) die ("Already set, delete row first");    addr->set = 1;    // Warning: bug, read the how to break and fix this    char *res = strncpy(addr->name, name, MAX_DATA);    if (!res) die ("Name copy failed");    res = strncpy(addr->email, email, MAX_DATA);    if (!res) die ("Email copy failed");}void Database_get(struct Connection *conn, int id){    struct Address *addr = &conn->db->rows[id];    if (addr->set) {        Address_print(addr);    } else {        die ("ID is not set");    }}void Database_delete (struct Connection *conn, int id){    struct Address addr = {.id = id, .set = 0};    conn->db->rows[id] = addr;}void Database_list (struct Connection *conn){    int i = 0;    struct Database *db = conn->db;    for (i=0; i<MAX_ROWS; i++){        struct Address *addr = &db->rows[i];        if (addr->set){            Address_print(addr);        }    }}int main (int argc, char *argv[]){if (argc < 3) die ("Too less argument for setting up db: USAGE: ex17 <dbfile> <action> [action params]");    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("Too many records to open. There are not that many records.");    switch (action){        case 'c':            Database_create(conn);            Database_write(conn);            break;        case 'g':            if (argc != 4) die (" Need  an ID to open the record");            Database_get(conn, id);            break;        case 's':            if (argc != 6) die ("Need id email and name to set");            Database_set(conn, id, argv[4], argv[5]);            Database_write(conn);            break;                case 'd':            if (argc != 4) die ("Need id to delete");            Database_delete(conn, id);            Database_write(conn);            break;        case 'l':            Database_list(conn);            break;        default:            die("Invalid action, only: c=Create, g=Get, s=Set, d=Delete, l=List commands are available");    }    Database_close(conn);    return 0;//.........这里部分代码省略.........
开发者ID:neo7,项目名称:c_codes,代码行数:101,


示例28: Database_create

void Database_create(struct Connection *conn){        int i = 0;        for(i = 0; i < MAX_ROWS; i++) {                //Initizalize Database                struct Users user = {.id = i, .set = 0};                // Assign database                conn->db->rows[i] = user;        }}void Database_set(struct Connection *conn, int id, const char *username, const char *password){        struct Users *user = &conn->db->rows[id];        if(user->set) die("Already set, delete it first");        user->set = 1;        //we have to find a better way to do this rather than strncpy        char *res = strncpy(user->username, username, MAX_DATA);        if(!res) die("Username copy failed");        res = strncpy(user->password, password, MAX_DATA);        if(!res) die("Password copy failed");}void Database_get(struct Connection *conn, int id){        struct Users *user = &conn->db->rows[id];        if(user->set) {                Users_print(user);        } else {                die("ID is not set");        }}void Database_delete(struct Connection *conn, int id){        struct Users user = {.id = id, .set = 0};        conn->db->rows[id] = user;}void Database_list(struct Connection *conn){        int i = 0;        struct Database *db = conn->db;        for(i = 0; i < MAX_ROWS; i++) {                struct Users *cur = &db->rows[i];                if(cur->set) {                        Users_print(cur);                }        }}int main(int argc, char *argv[]){        if(argc < 3) die("USAGE: Database <dbfile> <action> [action params]");        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.");        switch(action) {                case 'c':                        Database_create(conn);                        Database_write(conn);                        break;                case 'g':                        if(argc != 4) die("Need an id to get");                        Database_get(conn, id);                        break;                case 's':                        if(argc != 6) die("Need id, username, password to set");                        Database_set(conn, id, argv[4], argv[5]);                        Database_write(conn);                        break;                case 'd':                        if(argc != 4) die("Need id to delete");                        Database_delete(conn, id);                        Database_write(conn);                        break;                case 'l':                        Database_list(conn);                        break;                default:                        die("Invalid action, only c=create, g=get, s=set, d=del, l=list");        }        Database_close(conn);//.........这里部分代码省略.........
开发者ID:Vligai,项目名称:enclosed,代码行数:101,


示例29: Database_create

//.........这里部分代码省略.........	for (i = 0; i < MAX_ROWS; i++) {		// make a prototype to initialize it		struct Address addr = {.id = i, .set = 0};		// then just assign it		conn->db->rows[i] = addr;	}}void Database_set(struct Connection *conn, int id, const char *name, const char *email){	struct Address *addr = &conn->db->rows[id];	if (addr->set) die("Already set, delete it first");		addr->set = 1;	// WARNING: bug, read the "How To Break It" and fix it	char *res = strncpy(addr->name, name, MAX_DATA);	// demonstrate the strncpy bug	if (!res) die("Name copy failed");		res = strncpy(addr->email, email, MAX_DATA);	if (!res) die("Email copy failed");}void Database_get(struct Connection *conn, int id){	struct Address *addr = &conn->db->rows[id];		if (addr->set) {		Address_print(addr);	} else {		die("ID is not set");	}}void Database_delete(struct Connection *conn, int id){	struct Address addr = {.id = id, .set = 0};	conn->db->rows[id] = addr;}void Database_list(struct Connection *conn){	int i = 0;	struct Database *db = conn->db;		for (i = 0; i < MAX_ROWS; i++) {		struct Address *cur = &db->rows[i];				if (cur->set) {			Address_print(cur);		}	}}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 = 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.");		switch(action) {		case 'c':			Database_create(conn);			Database_write(conn);			break;					case 'g':			if (argc != 4) die("Need an id to get");						Database_get(conn, id);			break;					case 's':			if (argc != 6) die("Need id, name, email to set");					case 'd':			if (argc != 4) die("Need id to delete");						Database_delete(conn, id);			Database_write(conn);			break;					case 'l':			Database_list(conn);			break;					default:			die("Invalid action, only: c=create, g=get, s=set, d=del, l=list");	}		Database_close(conn);		return 0;}
开发者ID:ajpocus,项目名称:lcthw,代码行数:101,


示例30: main

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];    int id = 0;        char *email;    if (action == 'c') {            if (argc != 5) {            die("Need max_rows and max_data");        }        max_rows = atoi(argv[3]);        max_data = atoi(argv[4]);    }    Database_open(filename, action);    if(action != 'c' && argc > 3) {        if (action != 'f') {            id = atoi(argv[3]);        } else {            email = argv[3];        }    }    if(id >= max_rows) die("There's not that many records.");    switch(action) {        case 'c':                        //Database_create();            Database_write();            break;        case 'g':            if(argc != 4) die("Need an id to get");            Database_get(id);            break;        case 'f':            if (argc != 4) die("Need email to find");            Database_find(email);            break;        case 's':            if(argc != 6) die("Need id, name, email to set");            Database_set(id, argv[4], argv[5]);            Database_write();            break;        case 'd':            if(argc != 4) die("Need id to delete");            Database_delete(id);            Database_write();            break;        case 'l':            Database_list();            break;        default:            die("Invalid action, only: c=create, g=get, f=find, s=set, d=del, l=list");    }    Database_close();    return 0;}
开发者ID:nebffa,项目名称:lcthw,代码行数:73,



注:本文中的Database_close函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ Database_create函数代码示例
C++ DatabaseException函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。