数据库的相关操作
来源:互联网 发布:网络打印适配器 编辑:程序博客网 时间:2024/03/29 00:43
说起数据库可能有些同学虽然听过,但是真正操作的可能比较少吧。一般情况下,如果大家和我一样从学生过来的,写的是C++代码,一般都会用txt存储一些东西。但是,在这里我不得不说一句,其实用txt存储关键数据不是一个很好的习惯。首先txt是个人双击就能打开,压根没有可靠性。其次,在多线程操作的时候,用txt操作读写的时候可能会引发一些问题。比如说,突然你的txt就变成空白了。。。。。博主就遇到过。。。好吧,可能是博主当时做的代码并不好。
char *name; char *org_name; char *table; char *org_table; char *db; char *catalog; char *def; unsigned long length; unsigned long max_length; unsigned int name_length; unsigned int org_name_length; unsigned int table_length; unsigned int org_table_length; unsigned int db_length; unsigned int catalog_length; unsigned int def_length; unsigned int flags; unsigned int decimals; unsigned int charsetnr; enum enum_field_types type; void *extension;
struct st_mysql_rows *next; MYSQL_ROW data; unsigned long length;
MYSQL_ROWS *data; struct embedded_query_result*embedded_info; MEM_ROOT alloc; my_ulonglong rows; unsigned int fields; void *extension;
MYSQL_OPT_CONNECT_TIMEOUT,MYSQL_OPT_COMPRESS, MYSQL_OPT_NAMED_PIPE, MYSQL_INIT_COMMAND,MYSQL_READ_DEFAULT_FILE, MYSQL_READ_DEFAULT_GROUP, MYSQL_SET_CHARSET_DIR,MYSQL_SET_CHARSET_NAME, MYSQL_OPT_LOCAL_INFILE, MYSQL_OPT_PROTOCOL,MYSQL_SHARED_MEMORY_BASE_NAME, MYSQL_OPT_READ_TIMEOUT, MYSQL_OPT_WRITE_TIMEOUT,MYSQL_OPT_USE_RESULT, MYSQL_OPT_USE_REMOTE_CONNECTION,MYSQL_OPT_USE_EMBEDDED_CONNECTION, MYSQL_OPT_GUESS_CONNECTION,MYSQL_SET_CLIENT_IP, MYSQL_SECURE_AUTH, MYSQL_REPORT_DATA_TRUNCATION,MYSQL_OPT_RECONNECT, MYSQL_OPT_SSL_VERIFY_SERVER_CERT,MYSQL_PLUGIN_DIR, MYSQL_DEFAULT_AUTH
unsigned int connect_timeout, read_timeout,write_timeout; unsigned int port, protocol; unsigned long client_flag; char*host,*user,*password,*unix_socket,*db; struct st_dynamic_array*init_commands; char *my_cnf_file,*my_cnf_group,*charset_dir, *charset_name; char *ssl_key; char *ssl_cert; char *ssl_ca; char *ssl_capath; char *ssl_cipher; char *shared_memory_base_name; unsigned long max_allowed_packet; my_bool use_ssl; my_bool compress,named_pipe; my_bool unused1; my_bool unused2; my_bool unused3; my_bool unused4; enum mysql_option methods_to_use; char *client_ip; my_bool secure_auth; my_bool report_data_truncation;
int (*local_infile_init)(void **, constchar *, void *); int (*local_infile_read)(void *, char *,unsigned int); void (*local_infile_end)(void *); int (*local_infile_error)(void *, char *,unsigned int); void *local_infile_userdata; struct st_mysql_options_extention*extension;
MYSQL_STATUS_READY,MYSQL_STATUS_GET_RESULT, MYSQL_STATUS_USE_RESULT, MYSQL_STATUS_STATEMENT_GET_RESULT
MYSQL_PROTOCOL_DEFAULT, MYSQL_PROTOCOL_TCP,MYSQL_PROTOCOL_SOCKET, MYSQL_PROTOCOL_PIPE,MYSQL_PROTOCOL_MEMORY
unsigned int number; unsigned int state; const char *csname; const char *name; const char *comment; const char *dir; unsigned int mbminlen; unsigned int mbmaxlen;
NET net; unsigned char *connector_fd; char*host,*user,*passwd,*unix_socket,*server_version,*host_info; char *info,*db; struct charset_info_st *charset; MYSQL_FIELD *fields; MEM_ROOT field_alloc; my_ulonglong affected_rows; my_ulonglong insert_id; my_ulonglong extra_info; unsigned long thread_id; unsigned long packet_length; unsigned int port; unsigned longclient_flag,server_capabilities; unsigned int protocol_version; unsigned int field_count; unsigned int server_status; unsigned int server_language; unsigned int warning_count; struct st_mysql_options options; enum mysql_status status; my_bool free_me; my_bool reconnect;
char scramble[SCRAMBLE_LENGTH+1]; my_bool unused1; void *unused2, *unused3, *unused4,*unused5;
LIST *stmts; const struct st_mysql_methods*methods; void *thd; my_bool *unbuffered_fetch_owner; char *info_buffer; void *extension;
my_ulonglong row_count; MYSQL_FIELD *fields; MYSQL_DATA *data; MYSQL_ROWS *data_cursor; unsigned long *lengths; MYSQL *handle; const struct st_mysql_methods*methods; MYSQL_ROW row; MYSQL_ROW current_row; MEM_ROOT field_alloc; unsigned int field_count,current_field; my_bool eof; my_bool unbuffered_fetch_cancelled; void *extension;
unsigned long *p_max_allowed_packet; unsigned long *p_net_buffer_length; void *extension;
unsigned int fieldnr);
constchar *cert, const char *ca, constchar *capath, const char *cipher); const char *passwd, const char *db); const char *user, const char *passwd, const char *db, unsigned int port, const char *unix_socket, unsigned long clientflag);
MY_CHARSET_INFO*charset);
int (*local_infile_init)(void **, const char*, void *), int (*local_infile_read)(void *, char *, void (*local_infile_end)(void *), int (*local_infile_error)(void *, char*, void *);
enummysql_enum_shutdown_level shutdown_level); unsigned intrefresh_options); constvoid *arg); MYSQL_FIELD_OFFSET offset); const char *wild); unsigned longfrom_length); unsignedlong from_length); char*to,const char *from, unsigned long length);
MYSQL_STMT_INIT_DONE= 1,MYSQL_STMT_PREPARE_DONE, MYSQL_STMT_EXECUTE_DONE, MYSQL_STMT_FETCH_DONE
unsigned long *length; my_bool *is_null; void *buffer; my_bool *error; unsigned char *row_ptr; void (*store_param_func)(NET *net, structst_mysql_bind *param); void (*fetch_result)(struct st_mysql_bind*, MYSQL_FIELD *, unsignedchar **row); void (*skip_result)(struct st_mysql_bind *,MYSQL_FIELD *, unsigned char **row); unsigned long buffer_length; unsigned long offset; unsigned long length_value; unsigned int param_number; unsigned int pack_length; enum enum_field_types buffer_type; my_bool error_value; my_bool is_unsigned; my_bool long_data_used; my_bool is_null_value; void *extension;
MEM_ROOT mem_root; LIST list; MYSQL *mysql; MYSQL_BIND *params; MYSQL_BIND *bind; MYSQL_FIELD *fields; MYSQL_DATA result; MYSQL_ROWS *data_cursor; int (*read_row_func)(struct st_mysql_stmt*stmt, unsigned char **row); my_ulonglong affected_rows; my_ulonglong insert_id; unsigned long stmt_id; unsigned long flags; unsigned long prefetch_rows; unsigned int server_status; unsigned int last_errno; unsigned int param_count; unsigned int field_count; enum enum_mysql_stmt_state state; char last_error[MYSQL_ERRMSG_SIZE]; char sqlstate[SQLSTATE_LENGTH+1]; my_bool send_types_to_server; my_bool bind_param_done; unsigned char bind_result_done; my_bool unbuffered_fetch_cancelled; my_bool update_max_length; struct st_mysql_stmt_extension*extension;
STMT_ATTR_UPDATE_MAX_LENGTH, STMT_ATTR_CURSOR_TYPE, STMT_ATTR_PREFETCH_ROWS
unsigned long length); unsignedint column, unsignedlong offset); enumenum_stmt_attr_type attr_type, const void*attr); enumenum_stmt_attr_type attr_type, void*attr); unsignedint param_number, const char*data, unsignedlong length); MYSQL_ROW_OFFSEToffset);
constchar *user, const char *passwd);
MYSQL_ROW row; mysql_library_init(0,NULL,NULL);//初始化MySQL C API库 if(mysql_init(&myCon)==NULL)//初始化mydata的数据结构,myCon是MYSQL对象 cout<<mysql_error(&myCon)<<endl; // if(mysql_set_character_set(&myCon,"utf8"))//连接选项:添加GBK字符集支持 //连接函数 if(mysql_real_connect(&myCon,"localhost","root","136133","mydb",50000, 0, 0) == NULL) cout<<"database connectionfailed!"<<endl;
cout<<"Can't createtable:"<<mysql_error(&myCon) << endl;
//注意时间的格式 if (mysql_query( &myCon, "insert intomytable value('2015-9-10 00:32','xiao','li',1,1)")) {//执行SQL语句出错
cout<<"update "<<tempi<<"row"<<endl;
cout<<"delete "<<tempi<<"row"<<endl; cout<<row[1]<<'\t'<<row[2]<<'\t'<<row[3]<<'\t'<<row[4]<<'\t'<<endl; ConnectDatabase();
//初始化数据结构 //connection character set
好了,言归正传,因为博主当时也是很怕麻烦的,所以直接用mysql的CAPI进行数据库操作。大家如果对数据库不熟悉,什么语句都不知道。。。。。。不用怕,因为博主也不是很熟悉。这些语句都是在mysql的数据手册上可以查询到的。而且语句其实也很简单,大家不需要记住,看看照葫芦画瓢就可以了。另外CAPI也是很简单,动态库链接之类的,大家用起来也是很方便的。
好了,上代码。
首先主要的代码需要包含一个mysql.h,大家不需要想怎么去写,因为我也不会写,都是copy的。
//////////////////////////////////mysql.h/////////////////////////////////////////////////
#ifndef _mysql_h
#define _mysql_h
#ifdef _AIX
#include
#endif
#ifdef __CYGWIN__
#undef WIN
#undef _WIN
#undef _WIN32
#undef _WIN64
#undef __WIN__
#endif
#ifdef __cplusplus
extern "C" {
#endif
#ifndef _global_h
#ifndef MYSQL_ABI_CHECK
#include
#endif
#ifdef __LCC__
#include
#endif
typedef char my_bool;
#if (defined(_WIN32) || defined(_WIN64)) &&!defined(__WIN__)
#define __WIN__
#endif
#if !defined(__WIN__)
#define STDCALL
#else
#define STDCALL __stdcall
#endif
#ifndef my_socket_defined
#ifdef __WIN__
#define my_socket SOCKET
#else
typedef int my_socket;
#endif
#endif
#endif
#include "mysql_version.h"
#include "mysql_com.h"
#include "mysql_time.h"
#include "my_list.h"
extern unsigned int mysql_port;
extern char *mysql_unix_port;
#define CLIENT_NET_READ_TIMEOUT 365*24*3600
#define CLIENT_NET_WRITE_TIMEOUT 365*24*3600
#define IS_PRI_KEY(n) ((n) & PRI_KEY_FLAG)
#define IS_NOT_NULL(n) ((n) & NOT_NULL_FLAG)
#define IS_BLOB(n) ((n) & BLOB_FLAG)
#define IS_NUM(t) (((t) <= MYSQL_TYPE_INT24 && (t)!= MYSQL_TYPE_TIMESTAMP) || (t) == MYSQL_TYPE_YEAR || (t) ==MYSQL_TYPE_NEWDECIMAL)
#define IS_LONGDATA(t) ((t) >= MYSQL_TYPE_TINY_BLOB&& (t) <= MYSQL_TYPE_STRING)
typedef struct st_mysql_field {
} MYSQL_FIELD;
typedef char **MYSQL_ROW;
typedef unsigned int MYSQL_FIELD_OFFSET;
#ifndef _global_h
#if defined(NO_CLIENT_LONG_LONG)
typedef unsigned long my_ulonglong;
#elif defined (__WIN__)
typedef unsigned __int64 my_ulonglong;
#else
typedef unsigned long long my_ulonglong;
#endif
#endif
#include "typelib.h"
#define MYSQL_COUNT_ERROR (~(my_ulonglong) 0)
#define ER_WARN_DATA_TRUNCATED WARN_DATA_TRUNCATED
typedef struct st_mysql_rows {
} MYSQL_ROWS;
typedef MYSQL_ROWS *MYSQL_ROW_OFFSET;
#include "my_alloc.h"
typedef struct embedded_query_resultEMBEDDED_QUERY_RESULT;
typedef struct st_mysql_data {
} MYSQL_DATA;
enum mysql_option
{
};
struct st_mysql_options_extention;
struct st_mysql_options {
};
enum mysql_status
{
};
enum mysql_protocol_type
{
};
typedef struct character_set
{
} MY_CHARSET_INFO;
struct st_mysql_methods;
struct st_mysql_stmt;
typedef struct st_mysql
{
} MYSQL;
typedef struct st_mysql_res {
} MYSQL_RES;
#if !defined(MYSQL_SERVER) &&!defined(MYSQL_CLIENT)
#define MYSQL_CLIENT
#endif
typedef struct st_mysql_parameters
{
} MYSQL_PARAMETERS;
#if !defined(MYSQL_SERVER) &&!defined(EMBEDDED_LIBRARY)
#define max_allowed_packet(*mysql_get_parameters()->p_max_allowed_packet)
#define net_buffer_length(*mysql_get_parameters()->p_net_buffer_length)
#endif
int STDCALL mysql_server_init(int argc, char **argv, char**groups);
void STDCALL mysql_server_end(void);
#define mysql_library_init mysql_server_init
#define mysql_library_end mysql_server_end
MYSQL_PARAMETERS *STDCALL mysql_get_parameters(void);
my_bool STDCALL mysql_thread_init(void);
void STDCALL mysql_thread_end(void);
my_ulonglong STDCALL mysql_num_rows(MYSQL_RES *res);
unsigned int STDCALL mysql_num_fields(MYSQL_RES *res);
my_bool STDCALL mysql_eof(MYSQL_RES *res);
MYSQL_FIELD *STDCALL mysql_fetch_field_direct(MYSQL_RES*res,
MYSQL_FIELD * STDCALL mysql_fetch_fields(MYSQL_RES*res);
MYSQL_ROW_OFFSET STDCALL mysql_row_tell(MYSQL_RES *res);
MYSQL_FIELD_OFFSET STDCALL mysql_field_tell(MYSQL_RES*res);
unsigned int STDCALL mysql_field_count(MYSQL *mysql);
my_ulonglong STDCALL mysql_affected_rows(MYSQL *mysql);
my_ulonglong STDCALL mysql_insert_id(MYSQL *mysql);
unsigned int STDCALL mysql_errno(MYSQL *mysql);
const char * STDCALL mysql_error(MYSQL *mysql);
const char *STDCALL mysql_sqlstate(MYSQL *mysql);
unsigned int STDCALL mysql_warning_count(MYSQL *mysql);
const char * STDCALL mysql_info(MYSQL *mysql);
unsigned long STDCALL mysql_thread_id(MYSQL *mysql);
const char * STDCALL mysql_character_set_name(MYSQL*mysql);
int STDCALLmysql_set_character_set(MYSQL *mysql, const char *csname);
MYSQL * STDCALL mysql_init(MYSQL *mysql);
my_bool STDCALL mysql_ssl_set(MYSQL *mysql, const char*key,
const char * STDCALLmysql_get_ssl_cipher(MYSQL *mysql);
my_bool STDCALL mysql_change_user(MYSQL *mysql, const char*user,
MYSQL * STDCALL mysql_real_connect(MYSQL *mysql, const char*host,
int STDCALL mysql_select_db(MYSQL *mysql, const char*db);
int STDCALL mysql_query(MYSQL *mysql, const char *q);
int STDCALL mysql_send_query(MYSQL *mysql, const char*q,
unsigned long length);
int STDCALL mysql_real_query(MYSQL *mysql, const char*q,
unsigned long length);
MYSQL_RES * STDCALLmysql_store_result(MYSQL *mysql);
MYSQL_RES * STDCALLmysql_use_result(MYSQL *mysql);
void STDCALL mysql_get_character_set_info(MYSQL*mysql,
#define LOCAL_INFILE_ERROR_LEN 512
void
mysql_set_local_infile_handler(MYSQL *mysql,
unsigned int),
unsigned int),
void
mysql_set_local_infile_default(MYSQL *mysql);
int STDCALL mysql_shutdown(MYSQL *mysql,
int STDCALL mysql_dump_debug_info(MYSQL *mysql);
int STDCALL mysql_refresh(MYSQL *mysql,
int STDCALL mysql_kill(MYSQL *mysql,unsigned long pid);
int STDCALL mysql_set_server_option(MYSQL *mysql,
enum enum_mysql_set_option
option);
int STDCALL mysql_ping(MYSQL *mysql);
const char * STDCALL mysql_stat(MYSQL *mysql);
const char * STDCALL mysql_get_server_info(MYSQL*mysql);
const char * STDCALL mysql_get_client_info(void);
unsigned long STDCALL mysql_get_client_version(void);
const char * STDCALL mysql_get_host_info(MYSQL *mysql);
unsigned long STDCALL mysql_get_server_version(MYSQL*mysql);
unsigned int STDCALL mysql_get_proto_info(MYSQL *mysql);
MYSQL_RES * STDCALL mysql_list_dbs(MYSQL *mysql,const char*wild);
MYSQL_RES * STDCALL mysql_list_tables(MYSQL *mysql,const char*wild);
MYSQL_RES * STDCALL mysql_list_processes(MYSQL *mysql);
int STDCALL mysql_options(MYSQL *mysql,enum mysql_optionoption,
void STDCALL mysql_free_result(MYSQL_RES *result);
void STDCALL mysql_data_seek(MYSQL_RES *result,
my_ulonglong offset);
MYSQL_ROW_OFFSET STDCALL mysql_row_seek(MYSQL_RES*result,
MYSQL_ROW_OFFSET offset);
MYSQL_FIELD_OFFSET STDCALL mysql_field_seek(MYSQL_RES*result,
MYSQL_ROW STDCALL mysql_fetch_row(MYSQL_RES *result);
unsigned long * STDCALL mysql_fetch_lengths(MYSQL_RES*result);
MYSQL_FIELD * STDCALL mysql_fetch_field(MYSQL_RES*result);
MYSQL_RES * STDCALLmysql_list_fields(MYSQL *mysql, const char *table,
unsigned long STDCALL mysql_escape_string(char *to,const char*from,
unsigned long STDCALL mysql_hex_string(char *to,const char*from,
unsigned long STDCALL mysql_real_escape_string(MYSQL*mysql,
void STDCALL mysql_debug(const char *debug);
void STDCALL myodbc_remove_escape(MYSQL *mysql,char*name);
unsigned int STDCALL mysql_thread_safe(void);
my_bool STDCALL mysql_embedded(void);
my_bool STDCALLmysql_read_query_result(MYSQL *mysql);
enum enum_mysql_stmt_state
{
};
typedef struct st_mysql_bind
{
} MYSQL_BIND;
struct st_mysql_stmt_extension;
typedef struct st_mysql_stmt
{
} MYSQL_STMT;
enum enum_stmt_attr_type
{
};
MYSQL_STMT * STDCALL mysql_stmt_init(MYSQL *mysql);
int STDCALL mysql_stmt_prepare(MYSQL_STMT *stmt, const char*query,
int STDCALL mysql_stmt_execute(MYSQL_STMT *stmt);
int STDCALL mysql_stmt_fetch(MYSQL_STMT *stmt);
int STDCALL mysql_stmt_fetch_column(MYSQL_STMT *stmt,MYSQL_BIND *bind_arg,
int STDCALL mysql_stmt_store_result(MYSQL_STMT *stmt);
unsigned long STDCALL mysql_stmt_param_count(MYSQL_STMT *stmt);
my_bool STDCALL mysql_stmt_attr_set(MYSQL_STMT *stmt,
my_bool STDCALL mysql_stmt_attr_get(MYSQL_STMT *stmt,
my_bool STDCALL mysql_stmt_bind_param(MYSQL_STMT * stmt,MYSQL_BIND * bnd);
my_bool STDCALL mysql_stmt_bind_result(MYSQL_STMT * stmt,MYSQL_BIND * bnd);
my_bool STDCALL mysql_stmt_close(MYSQL_STMT * stmt);
my_bool STDCALL mysql_stmt_reset(MYSQL_STMT * stmt);
my_bool STDCALL mysql_stmt_free_result(MYSQL_STMT*stmt);
my_bool STDCALL mysql_stmt_send_long_data(MYSQL_STMT*stmt,
MYSQL_RES *STDCALL mysql_stmt_result_metadata(MYSQL_STMT*stmt);
MYSQL_RES *STDCALL mysql_stmt_param_metadata(MYSQL_STMT*stmt);
unsigned int STDCALL mysql_stmt_errno(MYSQL_STMT *stmt);
const char *STDCALL mysql_stmt_error(MYSQL_STMT * stmt);
const char *STDCALL mysql_stmt_sqlstate(MYSQL_STMT *stmt);
MYSQL_ROW_OFFSET STDCALL mysql_stmt_row_seek(MYSQL_STMT*stmt,
MYSQL_ROW_OFFSET STDCALL mysql_stmt_row_tell(MYSQL_STMT*stmt);
void STDCALL mysql_stmt_data_seek(MYSQL_STMT *stmt,my_ulonglong offset);
my_ulonglong STDCALL mysql_stmt_num_rows(MYSQL_STMT*stmt);
my_ulonglong STDCALL mysql_stmt_affected_rows(MYSQL_STMT*stmt);
my_ulonglong STDCALL mysql_stmt_insert_id(MYSQL_STMT*stmt);
unsigned int STDCALL mysql_stmt_field_count(MYSQL_STMT*stmt);
my_bool STDCALL mysql_commit(MYSQL * mysql);
my_bool STDCALL mysql_rollback(MYSQL * mysql);
my_bool STDCALL mysql_autocommit(MYSQL * mysql, my_boolauto_mode);
my_bool STDCALL mysql_more_results(MYSQL *mysql);
int STDCALL mysql_next_result(MYSQL *mysql);
int STDCALL mysql_stmt_next_result(MYSQL_STMT *stmt);
void STDCALL mysql_close(MYSQL *sock);
#define MYSQL_NO_DATA 100
#define MYSQL_DATA_TRUNCATED 101
#define mysql_reload(mysql)mysql_refresh((mysql),REFRESH_GRANT)
#ifdef USE_OLD_FUNCTIONS
MYSQL * STDCALL mysql_connect(MYSQL *mysql, const char*host,
int STDCALL mysql_create_db(MYSQL *mysql, const char*DB);
int STDCALL mysql_drop_db(MYSQL *mysql, const char *DB);
#endif
#define HAVE_MYSQL_REAL_CONNECT
#ifdef __cplusplus
}
#endif
#endif
//
// ConnectSQL.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
MYSQL_RES *res;//这里定义的是一个结果集,主要是很多查询的结果都是已结果集返回的
MYSQL_FIELD * fd ;
int i;
MYSQL myCon;
void ConnectDatabase()
{
// cout<<mysql_error(&myCon)<<endl;
//首先我想要说明的是,如果没有特殊声明一般情况下对于数据库的操作,返回值为0表示成功,非0表示失败
{
return;
}
else
{
mysql_query(&myCon, "SET NAMES GBK");//设置编码格式,否则在cmd下无法显示中文
cout<<"database connectionsucceed!"<<endl;
}
}
void CreateTable()
{
if (mysql_query( &myCon, "create table mytable ( timedatetime, s1 char(6), s2 char(11),s3 int, s4 int)"))
//执行SQL语句
{//执行SQL语句出错
//mysql_close( &myCon ) ;
return ;
}
}
void InsertDataIntoTable()
{
cout<<"Can't insert data totable"<<mysql_error(&myCon) << endl;
// mysql_close( &myCon) ;
return ;
}
}
void ShowAllData()
{
if (mysql_query( &myCon, "select * from mytable"))
//进行数据检索
{
//执行SQL语句出错
cout<<"Can't select data fromtable"<<mysql_error(&myCon) << endl;
//mysql_close( &myCon ) ;
return ;
}
else
{
res = mysql_store_result( &myCon) ;
//取得查询结果
i = (int) mysql_num_rows( res ) ;
//取得有效记录数
// cout<<"Query:"<<szSqlText<<"\n"<<i<<" recordsfound:"<<endl;
for ( i = 0 ; fd = mysql_fetch_field( res ) ; i++ )
cout<<fd->name<<"\t";
cout<<endl;
//输出各字段名
while(row = mysql_fetch_row( res ))
//依次读取各条记录
cout<<row[0]<<"\t"<<row[1]<<"\t"<<row[2]<<"\t"<<row[3]<<"\t"<<row[4]<<endl;
mysql_free_result( res ) ;
}
}
void FindData()
{
if (mysql_query( &myCon, "select * from mytable wheres2='zuo'"))
//进行数据检索
{
//执行SQL语句出错
cout<<"Can't select data fromtable"<<mysql_error(&myCon) << endl;
//mysql_close( &myCon ) ;
return ;
}
else
{
res = mysql_store_result( &myCon) ;
//取得查询结果
//输出各字段名
while(row = mysql_fetch_row( res ))
//依次读取各条记录
cout<<row[0]<<"\t"<<row[1]<<"\t"<<row[2]<<"\t"<<row[3]<<"\t"<<row[4]<<endl;
mysql_free_result( res ) ;
}
}
void UpdateData()
{
if (mysql_query( &myCon, "update mytable sets1='xiao2',s3=2 where s1='xiao'"))
//进行数据检索
{
//执行SQL语句出错
cout<<"Can't updatetable"<<mysql_error(&myCon) << endl;
//mysql_close( &myCon ) ;
return ;
}
if (mysql_query( &myCon, "update mytable set s4=5 wheres2='wang'"))
//进行数据检索
{
//执行SQL语句出错
cout<<"Can't updatetable"<<mysql_error(&myCon) << endl;
//mysql_close( &myCon ) ;
return ;
}
else
{
int tempi= mysql_affected_rows( &myCon) ;//0表示未更新记录
//取得查询结果
}
}
void DeleteData()
{
if (mysql_query( &myCon, "delete from mytable where s2='wang'"))
//进行数据检索
{
//执行SQL语句出错
cout<<"Can't detelemytable"<<mysql_error(&myCon) << endl;
//mysql_close( &myCon ) ;
return ;
}
else
{
int tempi= mysql_affected_rows( &myCon) ;//0表示未更新记录
//取得查询结果
}
}
void TopData(int topRow)
{
if (mysql_query( &myCon, "select top 2 *frommytable"))
//进行数据检索
{
//执行SQL语句出错
cout<<"Can't select top from mytable"<<mysql_error(&myCon) <<endl;
//mysql_close( &myCon ) ;
return ;
}
else
{
res= mysql_store_result( &myCon) ;//0表示未更新记录
//取得查询结果
while(row=mysql_fetch_row(res))
}
}
void LikeData()
{
if(mysql_query(&myCon,"select * from mytable where s2 like'%i'"))
{
cout<<"can not use like % symbol:"<<endl;
cout<<mysql_error(&myCon)<<endl;
}
else
{
res=mysql_store_result(&myCon);
while(row=mysql_fetch_row(res))
cout<<row[1]<<'\t'<<row[2]<<'\t'<<row[3]<<'\t'<<row[4]<<endl;
}
}
void main(){
// CreateTable();
// InsertDataIntoTable();
cout<<"show all the data:"<<endl;
ShowAllData();
cout<<"show a data where thes2='zuo'"<<endl;
FindData();
cout<<"update a data"<<endl;
UpdateData();
DeleteData();
//get the top row of the table
// int topRow=2; can notselect top in C API
// TopData(topRow);
LikeData();
//wait for posibility to check system/mysql mysqlets
mysql_close(&myCon);
mysql_library_end();
}
阅读全文
0 0
- 数据库的相关操作
- 数据库的相关操作
- 数据库相关的操作
- 数据库的相关操作
- 数据库的相关操作
- 数据库的相关操作
- Sspring相关的数据库操作
- 数据库中表的相关操作
- Sqlite 数据库的相关操作
- mysql数据库的相关操作
- 关于数据库的相关操作
- MYSQL数据库的相关操作
- 删除数据库中多个表中相关记录的操作
- (Oracle)数据库管理的相关操作语句
- 数据库中enumType相关的一些操作
- 操作ssh和数据库相关的
- Java实现Neo4j数据库的相关操作
- android SQLite数据库相关的操作
- insertId: Error: INVALID_ACCESS_ERR: DOM Exception 15
- 14.2. Input and Output Operators
- 多线程-----ATM存取钱
- 多线程------消费者模式
- 多线程-----共享互斥量
- 数据库的相关操作
- STL-----string 用法
- STL----vector 用法
- 华为交换机常用命令
- Linux串口驱动程序(4)-串口发送分析
- H5 画面关闭软键盘
- Trafodion CQD-hbase_coprocessors
- JOOQ 为table和view自动生成代码
- MySQL查询补充 HTML简记 6.30