下面是 LR 的通过 odbc 连接 mysql 的脚本,附件图标附上了 我的odbc的配置。
注意,win7 需要安装 64位的mysql的驱动,否则odbc上增加不了相应的数据源
#include "lrd.h"
Action()
{
static LRD_INIT_INFO InitInfo = {LRD_INIT_INFO_EYECAT};
static LRD_DEFAULT_DB_VERSION DBTypeVersion[] =
{
{LRD_DBTYPE_ODBC, LRD_DBVERSION_ODBC_30},
{LRD_DBTYPE_NONE, LRD_DBVERSION_NONE}
};
static LRD_CONTEXT FAR * Ctx1;
static LRD_CONNECTION FAR * Con1;
static LRD_CURSOR FAR * Csr1;
//上面的定义的代码如果录制脚本,在vdf.h中就有定义,同时还有一些其他文件
//如果手写脚本,则需要手工添加,主要是定义各种变量
//查询行数
unsigned long count=0;
//static LRD_VAR_DESC FAR * ENAME_D21;
//初始
lrd_init(&InitInfo, DBTypeVersion);
//打开上下文
lrd_open_context(&Ctx1, LRD_DBTYPE_ODBC, 0, 0, 0);
//申请连接的内存
lrd_alloc_connection(&Con1, LRD_DBTYPE_ODBC, Ctx1, 0 /*Unused*/, 0);
//打开连接,注意DRIVER就是上面安装的
lrd_open_connection(&Con1, LRD_DBTYPE_ODBC, "root", "root", "mysql5.6", "", 0, 0, 0);
//打开游标
lrd_open_cursor(&Csr1, Con1, 0);
//Sql语句,注意1代表的意思是,立马执行
lrd_stmt(Csr1, "SELECT COUNT(1) FROM content;", -1, 1, 0 /*None*/, 0);
lrd_stmt(Csr1, "select * from content", -1, 1, 0 /*None*/, 0);
//lrd_bind_col(Csr1, 1, &ENAME_D21, 0, 0);
//统计行数到count变量中
lrd_row_count(Csr1, &count, 0);
//打印消息
lr_message("count= %d",count);
//先关闭游标
lrd_close_cursor(&Csr1, 0);
//再关闭连接
lrd_close_connection(&Con1, 0, 0);
//释放连接,和alloc相呼应,否则有内存泄露
lrd_free_connection(&Con1, 0 /*Unused*/, 0);
//再关闭上下文
lrd_close_context(&Ctx1, 0, 0);
//完毕,返回0
}
标签: