这篇教程C++ Database_close函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中Database_close函数的典型用法代码示例。如果您正苦于以下问题:C++ Database_close函数的具体用法?C++ Database_close怎么用?C++ Database_close使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了Database_close函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: mainint 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: mainint 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: mainint 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: dievoid 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: dievoid die(const char *message) { if (errno) { perror(message); } else { printf("ERROR: %s/n", message); } Database_close(); exit(1);}
开发者ID:edek437,项目名称:justcode,代码行数:9,
示例6: mainint 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: mainint 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: dievoid 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: mainint 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: mainint 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: dievoid 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: mainint 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: mainint 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_createvoid 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_createvoid 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_createvoid 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_createvoid 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_createvoid 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_createvoid 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_createvoid 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: mainint 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函数代码示例 |