PDF (Ltr)- 1.3 mb
PDF (A4)- 1.3 mb
HTML下载(TGZ)- 165.5 kb
HTML下载(邮政编码)- 176.0 kb
二进制(预处理语句)协议使您能够发送和接收日期和时间值(日期
,时间
,DATETIME
,时间戳
),使用MYSQL_TIME
结构。该结构的成员在第6.2节,“C API预处理语句数据结构”.
若要发送时态数据值,请使用mysql_stmt_prepare ()
.然后,在调用之前mysql_stmt_execute ()
要执行该语句,请使用以下步骤设置每个时态参数:
使用mysql_stmt_bind_param ()
将参数数据绑定到语句。然后你可以打电话给mysql_stmt_execute ()
.
检索时态值的过程与此类似,只是您设置了buffer_type
成员添加到期望接收的值的类型缓冲
的地址MYSQL_TIME
结构,返回值应放置在其中。使用mysql_stmt_bind_result ()
在调用后将缓冲区绑定到语句mysql_stmt_execute ()
在获取结果之前。
下面是一个插入的简单示例日期
,时间
,时间戳
数据。的mysql
变量被假定为有效的连接处理程序。
MYSQL_TIME ts;MYSQL_BIND绑定[3];MYSQL_STMT *支撑;strmov(查询,"INSERT INTO test_table(date_field, time_field, \ timestamp_field) VALUES(?,?,?");支撑= mysql_stmt_init (mysql);If (!stmt) {fprintf(stderr, " mysql_stmt_init(),内存不足\n");退出(0);} if (mysql_stmt_prepare(mysql, query, strlen(query))) {fprintf(stderr, "\n mysql_stmt_prepare(), INSERT failed");Fprintf (stderr, "\n %s", mysql_stmt_error(stmt));退出(0); } /* set up input buffers for all 3 parameters */ bind[0].buffer_type= MYSQL_TYPE_DATE; bind[0].buffer= (char *)&ts; bind[0].is_null= 0; bind[0].length= 0; ... bind[1]= bind[2]= bind[0]; ... mysql_stmt_bind_param(stmt, bind); /* supply the data to be sent in the ts structure */ ts.year= 2002; ts.month= 02; ts.day= 03; ts.hour= 10; ts.minute= 45; ts.second= 20; mysql_stmt_execute(stmt); ..