设为首页 加入收藏

TOP

linuxCsqlite3mysql(四)
2015-11-21 01:42:36 来源: 作者: 【 】 浏览:6
Tags:linuxCsqlite3mysql
-1]='\0'; if(strlen(updateWhereStr) >= 3) updateWhereStr[strlen(updateWhereStr)-3]='\0'; char *errmsg = 0; int ret = 0; char sqlUpdateTable[MAX_SQLSTR]={0}; sprintf(sqlUpdateTable, "update %s set %s where %s", tableName, updateSetStr, updateWhereStr); //update tb_cardID set cardNum=1243423,password='323443' where cardID=1 and endDate=2013; memset(updateSetStr, 0, strlen(updateSetStr)); memset(updateWhereStr, 0, strlen(updateWhereStr)); if(sqlDB->type == SQL_SQLITE3) { gseMutexLock(&dbMutex); sqlDB->db = (sqlite3 *)sqlDB->db; ret = sqlite3_exec(sqlDB->db,sqlUpdateTable,NULL,NULL,&errmsg); if(ret != SQLITE_OK) { gseLog(L_ERROR, "%s",sqlUpdateTable); gseLog(L_ERROR,"ret = %d, update table fail: %s", ret, errmsg); } sqlite3_free(errmsg); gseMutexUnlock(&dbMutex); } else if(sqlDB->type == SQL_MYSQL) { #ifdef MYSQL_DEFINE sqlDB->db = (MYSQL *)sqlDB->db; ret = mysql_query(sqlDB->db, sqlUpdateTable); if (ret) { gseLog(L_ERROR,"sqlUpdate Error 4 %u: %s", mysql_errno(sqlDB->db), mysql_error(sqlDB->db)); } #endif } else { ret = -2; } if(1 == IsUpdateAll && 0 != ret) { rollBack(sqlDB); return ret; } return ret; } int DBSearch(dbClass *sqlDB, const char *tableName, char *searchWhereStr, char (*returnValue)[SEARCH_MAXLEN]) { if(sqlDB == NULL || tableName == NULL || searchWhereStr == NULL) { gseLog(L_ERROR,"*db is NULL"); return -1; } char *errmsg = 0; int ret = 0; char sqlSearchTable[MAX_SQLSTR]={0}; int i; int nRow=0,nColumn=0; if(strlen(searchWhereStr) >= 3) searchWhereStr[strlen(searchWhereStr)-3]='\0'; sprintf(sqlSearchTable, "select * from %s where %s",tableName,searchWhereStr); //select * from tb_cardID where cardNum=323435; memset(searchWhereStr, 0, strlen(searchWhereStr)); if(sqlDB->type == SQL_SQLITE3) { gseMutexLock(&dbMutex); sqlDB->db = (sqlite3 *)sqlDB->db; char **azResult; ret = sqlite3_get_table(sqlDB->db, sqlSearchTable, &azResult, &nRow, &nColumn,&errmsg); if(ret != SQLITE_OK) { gseLog(L_ERROR, "%s",sqlSearchTable); gseLog(L_ERROR,"ret = %d, search table fail: %s", ret, errmsg); } // gseLog(L_INFO,"row:%d column=%d",nRow, nColumn); for(i=nColumn;i<(nRow+1)*nColumn;i++) { // printf("azResult[%d] = %s\n", i, azResult[i]); if(azResult[i] != NULL && (*returnValue + SEARCH_MAXLEN*(i-nColumn)) != NULL) strcpy(*returnValue + SEARCH_MAXLEN*(i-nColumn), azResult[i]); } sqlite3_free_table(azResult); sqlite3_free(errmsg); gseMutexUnlock(&dbMutex); if(0 == nRow) return 1; else if(1 <= nRow) return 0; } else if(sqlDB->type == SQL_MYSQL) { #ifdef MYSQL_DEFINE sqlDB->db = (MYSQL *)sqlDB->db; ret = mysql_query(sqlDB->db, sqlSearchTable); if (ret) { gseLog(L_ERROR,"sqlSearch Error 4 %u: %s\n", mysql_errno(sqlDB->db), mysql_error(sqlDB->db)); } MYSQL_RES *result; MYSQL_ROW row; MYSQL_FIELD *field; int num_fields; result = mysql_store_result(sqlDB->db); num_fields = mysql_num_fields(result); while ((row = mysql_fetch_row(result))) { nRow++; for(i = 0; i < num_fields; i++) { if (i == 0) { while(field = mysql_fetch_field(result)) { printf("%s ", field->name); } printf("\n"); } printf("%s ", row[i] ? row[i] : "NULL"); } } printf("\n"); mysql_free_result(result); if(nRow == 0) return 0; else return nRow; #endif } return -2; } int DBDelete(dbClass *sqlDB, const char *tableName, char *searchWhereStr) { if(sqlDB == NULL || tableName == NULL || searchWhereStr == NULL) { gseLog(L_ERROR,"*db is NULL"); return -1; } char *errmsg = 0; int ret = 0; char sqlDeleteTable[MAX_SQLSTR]={0}; if(strlen(searchWhereStr) >= 3) { searchWhereStr[strlen(searchWhereStr)-3]='\0'; sprintf(sqlDeleteTable, "delete from %s where %s"
首页 上一页 1 2 3 4 5 6 下一页 尾页 4/6/6
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇修改mysql 表的字符编码 下一篇PostgreSQL与MySQL比较

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: