VS2010中php执行数据库语句执行SQl语句的问题

c++在vs2010中操作Mysql的讲解 - 推酷
c++在vs2010中操作Mysql的讲解
Number of View: 6
1.vs2010中mysql的构建
首先你需要mysql安装目录下的include文件夹和lib文件夹,并保证lib里面的文件完整(libmysql.dll和libmysql.lib均存在),没有的
下载这两个文件夹,下载后直接将这两个文件夹解压放在你记得住的地方(这里我们放在了d:\mysqlc下面,分别是d:\mysqlc\include,d:\mysqlc\lib),然后打开vs2010做以下操作
右键点击你的项目名称,选择属性,分别在”c/c++”-&常规,”连接器”-&常规 的“附加包含目录”直接填入“d:\mysqlc\d:\mysqlc\lib”,也可以自己点开一个一个填写,如图(图中所示我是本机配置,请忽略):
然后在 “连接器”-&输入中 的 “附加依赖项”填入:libmysql.lib ,如图:
然后呢,还需要一部,复制“d:\mysqlc\lib\libmysql.dll”到“c:\windows”下面,不然待会运行,会提示找不到libmysql.dll的错误
到这里我们就构建好了,这里我们先来看下代码,之后再详细讲解c++操作mysql的函数
// test.cpp : 定义控制台应用程序的入口点 主文件入口
#include &stdafx.h&
#include &winsock.h&
#include &mysql.h&
void _tmain(int argc, _TCHAR* argv[])
mysql=mysql_init(NULL);
char* sql=&select pid,title from posts&;
MYSQL_RES *
if(mysql_real_connect(mysql,&localhost&,&root&,&root&,&maijiawo&,3306,NULL,0)){
mysql_set_character_set(mysql,&gbk&);
if(!mysql_query(mysql,sql)){
result=mysql_store_result(mysql);
if(result==NULL)
num=mysql_num_fields(result);
unsigned long *lengths = mysql_fetch_lengths(result);
while(row=mysql_fetch_row(result)){
for(r=0;r&r++){
cout&&row[r]&&' ';
mysql_free_result(result);
mysql_close(mysql);
// test.cpp : 定义控制台应用程序的入口点 主文件入口
#include &stdafx.h&
#include &winsock.h&
#include &mysql.h&
mysql_init
&select pid,title from posts&
MYSQL_RES *
mysql_real_connect
&localhost&
&maijiawo&
mysql_set_character_set
mysql_query
&&&&&&&&&&&&
mysql_store_result
&&&&&&&&&&&&
&&&&&&&&&&&&&&&&
&&&&&&&&&&&&
mysql_num_fields
&&&&&&&&&&&&
&&&&&&&&&&&&
mysql_fetch_lengths
&&&&&&&&&&&&
mysql_fetch_row
&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&
&&&&&&&&&&&&
&&&&&&&&&&&&
mysql_free_result
mysql_close
别忘了在stdafx.h中加入这句:
#include &iostream&
现在我们来详细分析下相关函数,比较详细,慢慢看
我们 在用mysql的c API时,用到最多的就是MYSQL结构了。毫无疑问这个结构是mysql c/c++编程的核心了。
以下是该结构的定义:
typedef struct st_mysql {
NET && & & & & & & & & & & & & & & & & & & & & & & & & & & & &/* 网络连接参数 */
gptr connector_ && & & & & & & & & & & & & & & & & & & &&/* SSL 连接句柄 */
char *host,*user,*passwd,*unix_socket,*server_version,*host_info,*info,* & // 连接参数
unsigned int port,client_flag,server_ & & & & & & & & & //连接参数
unsigned int protocol_
unsigned int field_ & & & & & &//列数
unsigned int&server_ & & &//
unsigned long thread_ && & & & & & & &/* Id for connection in server */
my_ulonglong affected_
my_ulonglong insert_ /* id if insert on table with NEXTNR */
my_ulonglong extra_ /* Used by mysqlshow */
unsigned long packet_
enum mysql_
MYSQL_FIELD * // the field info
MEM_ROOT field_ // the field memory
my_bool free_ /* If free in mysql_close */
my_ /* set to 1 if automatic reconnect */
struct st_mysql_ //option
char & & & &scramble_buff[9]; // ???
struct charset_info_st * // charset info.
unsigned int &server_ // server language/
以下是net的定义,这个结构被用来进行网络读写:
typedef struct st_net {
my_ /* For Perl DBI/dbd */
unsigned char *buff,*buff_end,*write_pos,*read_
char last_error[MYSQL_ERRMSG_SIZE];
unsigned int last_errno,max_packet,timeout,pkt_
my_bool return_errno,
my_bool no_send_ /* needed if we are doing several
queries in one command ( as in LOAD TABLE … FROM MASTER ),
and do not want to confuse the client with OK at the wrong time
unsigned long remain_in_buf,length, buf_length, where_b;
unsigned int *return_
unsigned char reading_or_
char save_
我们在进行mysql连接以及查询时,MYSQL这个结构被用做传送信息的载体。
需要经常用到MYSQL结构的cAPI:
mysql_connect();
mysql_real_connect();
mysql_query();
mysql_store_result();
mysql_use_result();
mysql_error()
大家有兴趣可以看看这几个函数的实现,会有意想不到的收获!
c++连接mysql的主要是通过mysql的c API来实现 。
连接的API有两个,下面会分别描述:
mysql_connect()
(原型)ProtoType: &
MYSQL *mysql_connect(MYSQL *mysql, const char *host, const char *user, const char *passwd)
该函数已过时。最好使用mysql_real_connect()取而代之。
mysql_connect()试图建立与运行在主机(远程主机也可以)上的MySQL数据库引擎的连接。在能够执行任何其他API函数之前,必须先调用mysql_connect(),而且返回成功。但mysql_get_client_info()例外。
这些参数的意义与mysql_real_connect()的对应参数的意义相同,差别在于连接句柄可以为NULL。在这种情况下,C API将自动为连接结构分配内存,并当调用mysql_close()时释放分配的内存。该方法的缺点是,如果连接失败,你无法检索错误消息。要想从mysql_errno()或mysql_error()获得错误消息,必须提供有效的MYSQL指针。
返回值: NULL表示失败。反之成功。
mysql_real_connect()
MYSQL *mysql_real_connect(MYSQL *mysql, const char *host, const char *user, const char *passwd, const char *db, unsigned int port, const char *unix_socket, unsigned long client_flag)
mysql_real_connect()尝试与运行在主机上的MySQL数据库引擎建立连接。在你能够执行需要有效MySQL连接句柄结构的任何其他API函数之前,mysql_real_connect()必须被调用并返回成功。
参数说明:
&&&&&&&&& 第1个参数应是已有MYSQL结构的地址。调用mysql_real_connect()之前,
必须调用mysql_init()来初始化MYSQL结构
通过mysql_options()调用,可更改多种连接选项。
host的值必须是主机名或IP地址。如果host是NULL或字符串”localhost”,连接将被视为与本地主机的连接。如果操作系统支持套接字(Unix)或命名管道(Windows),将使用它们而不是TCP/IP连接到服务器。
user参数包含用户的MySQL登录ID。如果user是NULL或空字符串”&,用户将被视为当前用户。在UNIX环境下,它是当前的登录名。在Windows ODBC下,必须明确指定当前用户名。请参见
passwd参数包含用户的密码。如果passwd是NULL,仅会对该用户的(拥有1个空密码字段的)用户表中的条目进行匹配检查。这样,数据库管理员就能按特定的方式设置MySQL权限系统,根据用户是否拥有指定的密码,用户将获得不同的权限。
调用mysql_real_connect()之前,不要尝试加密密码,密码加密将由客户端API自动处理。
db是数据库名称。如果db为NULL,连接会将默认的数据库设为该值。
当你不想连接特定数据库时,可以指定db为NULL
如果“port”不是0,其值将用作TCP/IP连接的端口号。注意,“host”参数决定了连接的类型。port为0的话,使用mysql的默认tcp/ip端口3306.
如果unix_socket不是NULL,该字符串描述了应使用的套接字或命名管道。注意,“host”参数决定了连接的类型。
&client_flag的值通常为0,但是,也能将其设置为下述标志的组合,以允许特定功能:
CLIENT_COMPRESS
使用压缩协议。
CLIENT_FOUND_ROWS
返回发现的行数(匹配的),而不是受影响的行数。
CLIENT_IGNORE_SPACE
允许在函数名后使用空格。使所有的函数名成为保留字。
CLIENT_INTERACTIVE
关闭连接之前,允许interactive_timeout(取代了wait_timeout)秒的不活动时间。客户端的会话wait_timeout变量被设为会话interactive_timeout变量的值。
CLIENT_LOCAL_FILES
允许LOAD DATA LOCAL处理功能。
CLIENT_MULTI_STATEMENTS
通知服务器,客户端可能在单个字符串内发送多条语句(由‘;’隔开)。如果未设置该标志,将禁止多语句执行。
CLIENT_MULTI_RESULTS
通知服务器,客户端能够处理来自多语句执行或存储程序的多个结果集。如果设置了CLIENT_MULTI_STATEMENTS,将自动设置它。
CLIENT_NO_SCHEMA
db_name.tbl_name.col_name
语法。它用于ODBC。如果使用了该语法,它会使分析程序生成错误,在捕获某些ODBC程序中的缺陷时,它很有用。
CLIENT_ODBC
客户端是ODBC客户端。它将
变得更为ODBC友好。
CLIENT_SSL
使用SSL(加密协议)。该选项不应由应用程序设置,它是在客户端库内部设置的。
示例代码:
mysql_init(&mysql);
if (!mysql_real_connect(&mysql, &host&, &user&, &passwd&, &database&, 0, NULL, 0))
{//判断连接是否失败。
printf(&Failed to connect to database: Error: %s/n&,
mysql_error(&mysql));
mysql_init
mysql_real_connect
&database&
//判断连接是否失败。
&Failed to connect to database: Error: %s/n&
mysql_error
连接成功后,你就可以执行其他操作了。
mysql_connect和mysql_real_connect的区别:
1. mysql_connect不需要调用mysql_init来初始化连接句柄.但是mysql_real_connect需要。
2. mysql_connect只能指定host,user,password, database四个参数,无法指定特定端口,使用命名管道。只能使用默认的TCP/IP连接。默认端口只能是3306
3. mysql_connect在实现里调用了mysql_real_connect.是对其的封装。
我们可以从库的实现文件libmysql.c看到mysql_connect()函数的实现:
MYSQL * STDCALL
mysql_connect(MYSQL *mysql,const char *host,&const char *user, const char *passwd)
&&mysql=mysql_init(mysql); /* Make it thread safe */
&& &DBUG_ENTER(“mysql_connect”);
& &if (!(res = mysql_real_connect(mysql, host, user, passwd, null, 0, null, 0)))
&& & &if (mysql-&free_me)
my_free((gptr) mysql,MYF(0));
&& &DBUG_RETURN(res);
mysql_real_connect的实现就很长很复杂了。在此不贴出,有需要的同学可通过向我索取。
通过这两个函数,大家想必对mysql的连接都更多的了解了。在实际运用过程中,这两个函数已经够用了。还有需要用到的是
mysql_options来通过更改连接选项。
本文函数说明来自mysql5.1官方文档。
所需资料均来自mysql。
讲完了连接,接着就讲查询了。
mysql的执行和查询都是使用一下2个接口:
1. mysql_query(MYSQL* mysql, const char* sql);
2.&int mysql_real_query(MYSQL *mysql, const char *query, unsigned long length);
一下就分别描述这两个函数:
mysql_query()
int mysql_query(MYSQL *mysql, const char *query)
执行由“Null终结的字符串”查询指向的SQL查询。正常情况下,字符串必须包含1条SQL语句,
而且不应为语句添加终结分号(‘;’)或“/g”。如果允许多语句执行
,字符串可包含多条由分号隔开的语句。但是连接的时候必须指定CLIENT_MULTI_STATEMENTS选项。
mysql_query()不能用于包含二进制数据的查询,应使用mysql_real_query()取而代之(二进制数据可能包含字符‘/0’,mysql_query()会将该字符解释为查询字符串结束)。
如果希望了解查询是否应返回结果集,可使用mysql_field_count()进行检查。请参见
如果查询成功,返回0。如果出现错误,返回非0值。
mysql_real_query()
int mysql_real_query(MYSQL *mysql, const char *query, unsigned long length)
执行由“query”指向的SQL查询,它应是字符串长度字节“long”。正常情况下,字符串必须包含1条SQL语句,
而且不应为语句添加终结分号(‘;’)或“/g”
。如果允许多语句执行,字符串可包含由分号隔开的多条语句。但是连接的时候必须指定CLIENT_MULTI_STATEMENTS选项。
对于包含二进制数据的查询,必须使用mysql_real_query()而不是mysql_query(),这是因为,二进制数据可能会包含‘/0’字符。此外,mysql_real_query()比mysql_query()快,这是因为它不会在查询字符串上调用strlen()。
如果希望知道查询是否应返回结果集,可使用mysql_field_count()进行检查
如果查询成功,返回0。如果出现错误,返回非0值。
如果失败,可使用mysql_error(MYSQL* mysql)看看错误信息。
使用mysql_query和mysql_real_query可以执行任何的mysql语句。不需要在语句末尾加上分号!
对于没有像select一样的查询,需要接着调用mysql_store_result或者mysql_use_result来保存结果集。
对于insert或者delete,create语句,不返回结果集的,判断返回值看看是否执行成功,然后用mysql_affected_rows函数来
查询被影响的行数。用mysql_error(MYSQL* mysql)来看错误信息
用mysql进行数据查询的时候,mysql会返回一个结果集给我们。接着我们需要调用mysql的api,从这个结果集中取得我们要的数据。
取完数据之后,需要释放这个结果集。
mysql的结果集其实就是一个MYSQL_RES结构,其定义如下:
typedef struct&
st_mysql_res
my_ulonglong row_ && & & & & & & & & & & & & & &// 结果集的行数
unsigned int field_count, current_ && & & & &&// 结果集的列数,当前列
MYSQL_FIELD
* && & & & & & & & & & & & & & & & &&// 结果集的列信息
MYSQL_DATA
* && & & & & & & & & & & & & & & & & &&// 结果集的数据
MYSQL_ROWS
*data_ && & & & & & & & & & &&// 结果集的光标
field_ & & & & & & & & & & & & & & & & & // 内存结构
&& & & & & & & & & & & & & & & & & & & &// 非缓冲的时候用到
current_ & & & & & & & & & & & & & //mysql_store_result时会用到。当前行
unsigned long * && & & & & & & & & & & & & & & //每列的长度
* && & & & & & & & & & & & & & & & & & & & &// mysql_use_result会用。
my_ && & & & & & & & & & & & & & & & & & & & & & & &//是否为行尾
} MYSQL_RES;
typedef char **
/* 返回的每一行的值,全部用字符串来表示*/
typedef struct st_mysql_rows {
&&struct st_mysql_rows * /* list of rows */
&&MYSQL_ROW
MYSQL_ROWS
& & & &//mysql的数据的链表节点。可见mysql的结果集是链表结构
typedef struct st_mysql_data {
&&MYSQL_ROWS *
&&MEM_ROOT
MYSQL_DATA
// 数据集的结构
typedef struct st_mysql_field {
&&char * /* Name of column */
&&char * && & & & & & & & & & & & & & & & & & & & &&/* Table of column if column was a field */
&&char * && & & & & & & & & & & & & & & & & & & & & & &/* Default value (set by mysql_list_fields) */
&&enum enum_field_ && & & & & & & /* Type of field. Se mysql_com.h for types */
&& && & & & & & & & & & & & & & &/* Width of column */
&&unsigned int max_ && & & & & & & & & & &/* Max width of selected set */
&& && & & & & & & & & & & & & & & & /* Div flags */
&&u && & & & & & & & & & & & &&/* Number of decimals in field */
MYSQL_FIELD
&//列信息的结构
typedef struct st_used_mem { /* struct for once_alloc */
struct st_used_mem * /* Next block in use */
/* memory left in block &*/
/* Size of block */
//内存结构
typedef struct st_mem_root {
USED_MEM *
USED_MEM *
USED_MEM *pre_
unsigned int min_
unsigned int block_
void (*error_handler)(void);
&//内存结构
之所以列出这些结构,是想让大家对mysql的结果集有更清晰的认识。
以下是取得数据的相关API:
.&mysql_store_result()
MYSQL_RES *mysql_store_result(MYSQL *mysql)
对于成功检索了数据的每个查询(SELECT、SHOW、DESCRIBE、EXPLAIN、CHECK TABLE等),必须调用mysql_store_result()或mysql_use_result()&。
对于其他查询,不需要调用mysql_store_result()或mysql_use_result(),但是如果在任何情况下均调用了mysql_store_result(),它也不会导致任何伤害或性能降低。通过检查mysql_store_result()是否返回0,可检测查询是否没有结果集(以后会更多)。
如果希望了解查询是否应返回结果集,可使用mysql_field_count()进行检查。请参见
mysql_store_result()将查询的全部结果读取到客户端,分配1个MYSQL_RES结构,并将结果置于该结构中。
如果查询未返回结果集,mysql_store_result()将返回Null指针(例如,如果查询是INSERT语句)。
如果读取结果集失败,mysql_store_result()还会返回Null指针。通过检查mysql_error()是否返回非空字符串,mysql_errno()是否返回非0值,或mysql_field_count()是否返回0,可以检查是否出现了错误。
如果未返回行,将返回空的结果集。(空结果集设置不同于作为返回值的空指针)。
一旦调用了mysql_store_result()并获得了不是Null指针的结果,可调用mysql_num_rows()来找出结果集中的行数。
可以调用mysql_fetch_row()来获取结果集中的行,或调用mysql_row_seek()和mysql_row_tell()来获取或设置结果集中的当前行位置。
一旦完成了对结果集的操作,必须调用mysql_free_result()。
&mysql_use_result()
MYSQL_RES *mysql_use_result(MYSQL *mysql)
对于成功检索数据的每个查询(SELECT、SHOW、DESCRIBE、EXPLAIN),必须用mysql_store_result()或mysql_use_result()。
mysql_use_result()将初始化结果集检索,但并不像mysql_store_result()那样将结果集实际读取到客户端。
它必须通过对mysql_fetch_row()的调用,对每一行分别进行检索。这将直接从服务器读取结果,而不会将其保存在临时表或本地缓冲区内,与mysql_store_result()相比,速度更快而且使用的内存也更少。
客户端仅为当前行和通信缓冲区分配内存,分配的内存可增加到max_allowed_packet字节。
另一方面,如果你正在客户端一侧为各行进行大量的处理操作,或者将输出发送到了用户可能会键入“^S”(停止滚动)的屏幕,就不应使用mysql_use_result()。这会绑定服务器,并阻止其他线程更新任何表(数据从这类表获得)。
使用mysql_use_result()时,必须执行mysql_fetch_row(),直至返回NULL值,否则,
未获取的行将作为下一个检索的一部分返回
。C API给出命令不同步错误,如果忘记了执行该操作,将不能运行该命令。
不能对结果集用mysql_data_seek()、mysql_row_seek()、mysql_row_tell()、mysql_num_rows()或mysql_affected_rows(),也不应发出其他查询,直至mysql_use_result()完成为止。(但是,提取了所有行后,mysql_num_rows()将准确返回提取的行数)。
一旦完成了对结果集的操作,必须调用mysql_free_result()。
MYSQL_RES结果结构。如果出现错误,返回NULL。
3.取得一行的数据:
mysql_fetch_row()
MYSQL_ROW mysql_fetch_row(MYSQL_RES *result)
检索结果集的下一行。在mysql_store_result()之后使用时,如果没有要检索的行,mysql_fetch_row()返回NULL。
在mysql_use_result()之后使用时,如果没有要检索的行或出现了错误,mysql_fetch_row()返回NULL。
结果集的列数目由mysql_num_fields(result)给出。如果行中保存了调用mysql_fetch_row()返回的值,将按照row[0]到row[mysql_num_fields(result)-1],访问这些值的指针。行中的NULL值由NULL指针指明。
可以通过调用mysql_fetch_lengths()来获得行中字段值的长度。对于空字段以及包含NULL的字段,长度为0。通过检查字段值的指针,能够区分它们。如果指针为NULL,字段为NULL,否则字段为空。
下一行的MYSQL_ROW结构。如果没有更多要检索的行或出现了错误,返回NULL。
示例代码:
//假设mysql已经连接好
MYSQL_RES* result = mysql_store_result(mysql);
if (result
unsigned int num_
num_fields = mysql_num_fields(result);
while ((row = mysql_fetch_row(result)))
unsigned long *
lengths = mysql_fetch_lengths(result);
for(i = 0; i & num_ i++)
printf(&[%.*s] &, (int) lengths[i], row[i] ? row[i] : &NULL&);
printf(&/n&);
//假设mysql已经连接好
MYSQL_RES*
mysql_store_result
num_fields
num_fields
mysql_num_fields
mysql_fetch_row
mysql_fetch_lengths
num_fields
4. 取得列的信息。
mysql_fetch_field()
MYSQL_FIELD *mysql_fetch_field(MYSQL_RES *result)
返回采用MYSQL_FIELD结构的结果集的列。重复调用该函数,以检索关于结果集中所有列的信息。未剩余字段时,mysql_fetch_field()返回NULL。
每次执行新的SELECT查询时,将复位mysql_fetch_field(),以返回关于第1个字段的信息。调用mysql_field_seek()也会影响mysql_fetch_field()返回的字段。
如果调用了mysql_query()以在表上执行SELECT,但未调用mysql_store_result(),如果调用了mysql_fetch_field()以请求BLOB字段的长度,MySQL将返回默认的Blob长度(8KB)。之所以选择8KB是因为MySQL不知道BLOB的最大长度。应在日后使其成为可配置的。一旦检索了结果集,field-&max_length将包含特定查询中该列的最大值的长度。
当前列的MYSQL_FIELD结构。如果未剩余任何列,返回NULL。
MYSQL_FIELD *
while((field = mysql_fetch_field(result)))
printf(&field name %s/n&, field-&name);
MYSQL_FIELD *
mysql_fetch_field
&field name %s/n&
&mysql_fetch_fields()
MYSQL_FIELD *mysql_fetch_fields(MYSQL_RES *result)
对于结果集,返回所有MYSQL_FIELD结构的数组。每个结构提供了结果集中1列的字段定义。
关于结果集所有列的MYSQL_FIELD结构的数组。
unsigned int num_
MYSQL_FIELD *
num_fields = mysql_num_fields(result);
fields = mysql_fetch_fields(result);
for(i = 0; i & num_ i++)
printf(&Field %u is %s/n&, i, fields[i].name);
num_fields
MYSQL_FIELD *
num_fields
mysql_num_fields
mysql_fetch_fields
num_fields
&Field %u is %s/n&
&mysql_free_result()
void mysql_free_result(MYSQL_RES *result)
释放由mysql_store_result()、mysql_use_result()、mysql_list_dbs()等为结果集分配的内存。完成对结果集的操作后,必须调用mysql_free_result()释放结果集使用的内存。
释放完成后,不要尝试访问结果集。
最后也别忘了 mysql_close(mysql) !
永远记得要释放结果集!!!
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致问题标题:
问题描述:(简陋的描述会导致问题被最后回答、没有针对性回答甚至无法解答。请确保问题描述的足够清楚。)Visual Studio 2010中连接SQL数据库_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
Visual Studio 2010中连接SQL数据库
上传于||文档简介
&&为了使vs2010自动生成用户登陆和用户管理的数据表,一般是通过点击vs2010中菜单:网站
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩3页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢4998人阅读
Access中执行SQL语句的方法:
1、打开一个Access数据库文件
  2、点击“创建”标签中的“查询设计”,会弹出一个“显示表”的对话框,点击“关闭”将其关闭
  3、这时会有一个名为“查询*”的窗口,还不能输入SQL语句
  4、点击左上角的“SQL视图”,这时就可在查询窗中输入SQL语句了
  5、SQL语句编辑完成后,点击左上角的红色感叹号即可执行SQL语句
Access2003及之前版本执行SQL语句的方法:
(1)点击对象里的“查询”
(2)点击 “在设计视图创建查询” ,再点击“关闭”
(3)再点击&& 左上角的&sql&
(4)就可以输入sql语句了
以下是图文介绍
1、ACESS2007
(1)点击“创建”--点击 “查询设计”
(2)点击关闭
(3)点击左上角的&SQL视图&就可以打开SQL窗口了
2、ACCESS 2003
(1)点击对象里的“查询”
(2)点击 “在设计视图创建查询” ,再点击“关闭”
(3)再点击&& 左上角的&sql&
(4)就可以输入sql语句了
3、Access里like语句通配符
&&&& Access里like的通配符用法是这样:“?”表示任何单一字符;“*”表示零个或多个字符;“#”表示任何一个数字。如:
&&& select * from tablename where fieldname like '*沙洲*'
拣尽寒枝不肯栖,寂寞沙洲。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:139442次
积分:1477
积分:1477
排名:千里之外
原创:44篇
评论:53条
(1)(1)(1)(1)(1)(2)(1)(1)(3)(1)(2)(7)(1)(1)(2)(1)(1)(2)(1)(2)(4)(3)(2)(1)(1)(1)(1)(2)}

我要回帖

更多关于 数据库 执行语句 错误 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信