⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mysql.h

📁 Mysql与VC.NET连接,实现功能: 添加删除修改,注:检索功能未实现,感兴趣的朋友可以研究一下, 仅供学习参考用!
💻 H
📖 第 1 页 / 共 3 页
字号:
/* Copyright (C) 2000-2003 MySQL AB   This program is free software; you can redistribute it and/or modify   it under the terms of the GNU General Public License as published by   the Free Software Foundation; version 2 of the License.   This program is distributed in the hope that it will be useful,   but WITHOUT ANY WARRANTY; without even the implied warranty of   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the   GNU General Public License for more details.   You should have received a copy of the GNU General Public License   along with this program; if not, write to the Free Software   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA *//*  This file defines the client API to MySQL and also the ABI of the  dynamically linked libmysqlclient.  The ABI should never be changed in a released product of MySQL  thus you need to take great care when changing the file. In case  the file is changed so the ABI is broken, you must also  update the SHAREDLIB_MAJOR_VERSION in configure.in .*/#ifndef _mysql_h#define _mysql_h#ifdef __CYGWIN__     /* CYGWIN implements a UNIX API */#undef WIN#undef _WIN#undef _WIN32#undef _WIN64#undef __WIN__#endif#ifdef	__cplusplusextern "C" {#endif#ifndef _global_h				/* If not standard header */#include <sys/types.h>#ifdef __LCC__#include <winsock.h>				/* For windows */#endiftypedef char my_bool;#if (defined(_WIN32) || defined(_WIN64)) && !defined(__WIN__)#define __WIN__#endif#if !defined(__WIN__)#define STDCALL#else#define STDCALL __stdcall#endiftypedef char * gptr;#ifndef my_socket_defined#ifdef __WIN__#define my_socket SOCKET#elsetypedef int my_socket;#endif /* __WIN__ */#endif /* my_socket_defined */#endif /* _global_h */#include "mysql_version.h"#include "mysql_com.h"#include "mysql_time.h"#include "typelib.h"#include "my_list.h" /* for LISTs used in 'MYSQL' and 'MYSQL_STMT' */extern unsigned int mysql_port;extern char *mysql_unix_port;#define CLIENT_NET_READ_TIMEOUT		365*24*3600	/* Timeout on read */#define CLIENT_NET_WRITE_TIMEOUT	365*24*3600	/* Timeout on write */#ifdef __NETWARE__#pragma pack(push, 8)		/* 8 byte alignment */#endif#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) <= FIELD_TYPE_INT24 || (t) == FIELD_TYPE_YEAR || (t) == FIELD_TYPE_NEWDECIMAL)#define IS_NUM_FIELD(f)	 ((f)->flags & NUM_FLAG)#define INTERNAL_NUM_FIELD(f) (((f)->type <= FIELD_TYPE_INT24 && ((f)->type != FIELD_TYPE_TIMESTAMP || (f)->length == 14 || (f)->length == 8)) || (f)->type == FIELD_TYPE_YEAR)#define IS_LONGDATA(t) ((t) >= MYSQL_TYPE_TINY_BLOB && (t) <= MYSQL_TYPE_STRING)typedef struct st_mysql_field {  char *name;                 /* Name of column */  char *org_name;             /* Original column name, if an alias */  char *table;                /* Table of column if column was a field */  char *org_table;            /* Org table name, if table was an alias */  char *db;                   /* Database for table */  char *catalog;	      /* Catalog for table */  char *def;                  /* Default value (set by mysql_list_fields) */  unsigned long length;       /* Width of column (create length) */  unsigned long max_length;   /* Max width for selected set */  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;         /* Div flags */  unsigned int decimals;      /* Number of decimals in field */  unsigned int charsetnr;     /* Character set */  enum enum_field_types type; /* Type of field. See mysql_com.h for types */} MYSQL_FIELD;typedef char **MYSQL_ROW;		/* return data as array of strings */typedef unsigned int MYSQL_FIELD_OFFSET; /* offset to current field */#ifndef _global_h#if defined(NO_CLIENT_LONG_LONG)typedef unsigned long my_ulonglong;#elif defined (__WIN__)typedef unsigned __int64 my_ulonglong;#elsetypedef unsigned long long my_ulonglong;#endif#endif#define MYSQL_COUNT_ERROR (~(my_ulonglong) 0)/* backward compatibility define - to be removed eventually */#define ER_WARN_DATA_TRUNCATED WARN_DATA_TRUNCATEDtypedef struct st_mysql_rows {  struct st_mysql_rows *next;		/* list of rows */  MYSQL_ROW data;  unsigned long length;} MYSQL_ROWS;typedef MYSQL_ROWS *MYSQL_ROW_OFFSET;	/* offset to current row */#include "my_alloc.h"typedef struct embedded_query_result EMBEDDED_QUERY_RESULT;typedef struct st_mysql_data {  my_ulonglong rows;  unsigned int fields;  MYSQL_ROWS *data;  MEM_ROOT alloc;  /* extra info for embedded library */  struct embedded_query_result *embedded_info;} MYSQL_DATA;enum mysql_option {  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};struct st_mysql_options {  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;				/* PEM key file */  char *ssl_cert;				/* PEM cert file */  char *ssl_ca;					/* PEM CA file */  char *ssl_capath;				/* PEM directory of CA-s? */  char *ssl_cipher;				/* cipher to use */  char *shared_memory_base_name;  unsigned long max_allowed_packet;  my_bool use_ssl;				/* if to use SSL or not */  my_bool compress,named_pipe; /*   On connect, find out the replication role of the server, and   establish connections to all the peers */  my_bool rpl_probe; /*   Each call to mysql_real_query() will parse it to tell if it is a read   or a write, and direct it to the slave or the master */  my_bool rpl_parse; /*   If set, never read from a master, only from slave, when doing   a read that is replication-aware */  my_bool no_master_reads;#if !defined(CHECK_EMBEDDED_DIFFERENCES) || defined(EMBEDDED_LIBRARY)  my_bool separate_thread;#endif  enum mysql_option methods_to_use;  char *client_ip;  /* Refuse client connecting to server if it uses old (pre-4.1.1) protocol */  my_bool secure_auth;  /* 0 - never report, 1 - always report (default) */  my_bool report_data_truncation;  /* function pointers for local infile support */  int (*local_infile_init)(void **, const char *, 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;};enum mysql_status {  MYSQL_STATUS_READY,MYSQL_STATUS_GET_RESULT,MYSQL_STATUS_USE_RESULT};enum mysql_protocol_type {  MYSQL_PROTOCOL_DEFAULT, MYSQL_PROTOCOL_TCP, MYSQL_PROTOCOL_SOCKET,  MYSQL_PROTOCOL_PIPE, MYSQL_PROTOCOL_MEMORY};/*  There are three types of queries - the ones that have to go to  the master, the ones that go to a slave, and the adminstrative  type which must happen on the pivot connectioin*/enum mysql_rpl_type {  MYSQL_RPL_MASTER, MYSQL_RPL_SLAVE, MYSQL_RPL_ADMIN};typedef struct character_set{  unsigned int      number;     /* character set number              */  unsigned int      state;      /* character set state               */  const char        *csname;    /* collation name                    */  const char        *name;      /* character set name                */  const char        *comment;   /* comment                           */  const char        *dir;       /* character set directory           */  unsigned int      mbminlen;   /* min. length for multibyte strings */  unsigned int      mbmaxlen;   /* max. length for multibyte strings */} MY_CHARSET_INFO;struct st_mysql_methods;struct st_mysql_stmt;typedef struct st_mysql{  NET		net;			/* Communication parameters */  gptr		connector_fd;		/* ConnectorFd for SSL */  char		*host,*user,*passwd,*unix_socket,*server_version,*host_info,*info;  char          *db;  struct charset_info_st *charset;  MYSQL_FIELD	*fields;  MEM_ROOT	field_alloc;  my_ulonglong affected_rows;  my_ulonglong insert_id;		/* id if insert on table with NEXTNR */  my_ulonglong extra_info;		/* Not used */  unsigned long thread_id;		/* Id for connection in server */  unsigned long packet_length;  unsigned int	port;  unsigned long client_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;		/* If free in mysql_close */  my_bool	reconnect;		/* set to 1 if automatic reconnect */  /* session-wide random string */  char	        scramble[SCRAMBLE_LENGTH+1]; /*   Set if this is the original connection, not a master or a slave we have   added though mysql_rpl_probe() or mysql_set_master()/ mysql_add_slave() */  my_bool rpl_pivot;  /*    Pointers to the master, and the next slave connections, points to    itself if lone connection.  */  struct st_mysql* master, *next_slave;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -