在程序设计中,句柄是一种特殊的智能指针 。当一个应用程序要引用其他系统(如数据库、操作系统)所管理的内存块或对象时,就要使用句柄。
句柄与普通指针的区别在于,指针包含的是引用对象的内存地址,而句柄则是由系统所管理的引用标识,该标识可以被系统重新定位到一个内存地址上。这种间接访问对象的模式增强了系统对引用对象的控制。
enum选项 | 实际参数类型 | 说明 |
MysqL_OPT_CONNECT_TIMEOUT | const unsigned int * | 连接超时之前的等待秒数 |
MysqL_OPT_COMPRESS | 使用NULL | 网络连接中使用压缩机制 |
MysqL_INIT_COMMAND | const char * | 每次连接建立后发送的命令 |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
#include <stdlib.h>
#include <stdio.h>
#include "MysqL.h"
int
main(
argc,
char
**argv)
{
MysqL * conn_ptr;
conn_ptr = MysqL_init(NULL);
if
(!conn_ptr)
{
exit
(1);
}
conn_ptr = MysqL_real_connect(conn_ptr,
"localhost"
,monospace!important; font-size:1em!important; min-height:auto!important; color:blue!important; background:none!important">"root"
"yao"
"test"
{
printf
"connection success\n"
);
}
else
{
"connection Failed\n"
);
}
MysqL_close(conn_ptr);
return
0;
}
|
22
(MysqL_real_connect(&MysqL_conn,monospace!important; font-size:1em!important; min-height:auto!important; color:blue!important; background:none!important">"dfdsfjfd"
{
);
}
else
{
);
{
fprintf
(stderr,monospace!important; font-size:1em!important; min-height:auto!important; color:blue!important; background:none!important">"connection error %d:%s\n"
MysqL_errno(&MysqL_conn),MysqL_error(&MysqL_conn));
}
}
0;
注:这里我使用动态分配的连接结构,错误信息不产生。
27
28
29
30
31
32
33
34
res = MysqL_query(&MysqL_conn,monospace!important; font-size:1em!important; min-height:auto!important; color:blue!important; background:none!important">"insert into child(childid,age,name) values (1,12,'bing')"
);
(!res)
{
}
"insert error %d:%s"
MysqL_error(&MysqL_conn));
}
else
{
);
{
"Connection error %d:%s\n"
MysqL_error(&MysqL_conn));
}
}
0;