关闭

使用LR的ODBC协议进行mysql数据库测试

标签: 使用LR的ODBC协议进行mysql数据
1920人阅读 评论(0) 收藏 举报
分类:

一、ODBC环境配置

系统环境:

Win7 64位系统

1、安装:mysql驱动程序_mysql-connector-odbc-5.1.6-win32

2、64位系统,  那就在这个目录下C:\Windows\SysWOW64找到odbcad32.exe运行,配置mysql数据源(如果你是32位的,在C:\Windows\System32路径下)


二、ODBC协议脚本编写

1、可以进行录制:

步骤:安装SqlDbx,启动LR的VUGen,选择ODBC协议,进行录制。

缺点:录制脚本复杂且难以理解,而且回放效果不好。





2、手写代码:

步骤:1连接数据库  2执行sql语句  3关闭连接,具体代码如下:

    #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中就有定义,同时还有一些其他文件  
    //如果手写脚本,则需要手工添加,主要是定义各种变量  

<pre name="code" class="objc">
    //查询行数  
    unsigned long count=0;  
    //初始  
    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", lr_decrypt("559b4a806ccaaba6117ac18b9fcdc6ff3f9c67f70903"), "new_mysql", lr_decrypt(
        "559b4a80e"), Ctx1, 0, 0); 


<pre name="code" class="objc"><pre name="code" class="objc">    //执行第一条sql语句
    lrd_open_cursor(&Csr1, Con1, 0);    
    lrd_stmt(Csr1, "SELECT StartTime FROM Answer_Logs WHERE StartTime='1385439793'", -1, 1, 0 /*None*/, 0);
    lrd_row_count(Csr1, &count, 0);   
    lr_message("count= %d",count);  
    lrd_close_cursor(&Csr1, 0);  



<pre name="code" class="objc"><pre name="code" class="objc">    //执行第二条sql语句
    lrd_open_cursor(&Csr1, Con1, 0);   
    lrd_stmt(Csr1, "SELECT Ip FROM Answer_Logs WHERE Ip='49.5.3.173'", -1, 1, 0 /*None*/, 0);  
    lrd_row_count(Csr1, &count, 0);    
    lr_message("count= %d",count);    
    lrd_close_cursor(&Csr1, 0); 



<pre name="code" class="objc">    //执行第三条sql语句
    lrd_open_cursor(&Csr1, Con1, 0);   
    lrd_stmt(Csr1, "SELECT IssueID FROM Answer_Logs WHERE IssueID='2'", -1, 1, 0 /*None*/, 0);
    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  
    return 0;  
    }  







0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:56184次
    • 积分:600
    • 等级:
    • 排名:千里之外
    • 原创:13篇
    • 转载:10篇
    • 译文:0篇
    • 评论:4条
    最新评论