zoukankan      html  css  js  c++  java
  • loadrunner如何对mysql进行增删改查

    libraries.zip  地址:链接:https://pan.baidu.com/s/1kIZ2aBCOFSJ9l727MxgIKQ 密码:40vq

    *   说明一下,因为 lr 有很多库文件都没有,所以需要额外的从外部下载 公共库,并放到相应的位置。
    *          推荐下载: MySQL LoadRunner libraries.zip  这样的一个外库。
    *   下载完后,你会发现一共 9个文件,8个 .h 文件 1个 .dll 文件
    *     将 .h文件 都放在 lr安装目录中的 include 文件夹中, .dll 放在 bin 目录中
    *   
    */
     注意:花点时间把下载的 .h 文件快速的过一遍,下面我会对几个 用到的方法解释
          lr_load_dll('dll文件名');  加载动态库,这个很重要,可以防止 init 中 也可以放在 操作 Action中。
          lr_abort();  这个可以理解为退出。
          
     
          mysql_init(); 创建一个 mysql 对象。毕竟是调用别人家的,不拿到人家的许可怎么弄用方法呢。
          mysql_real_connection(); 数据库连接,你可以在Ptt_mysql.h 文件中查找该方法的原形,或者 百度
          mysql_query();  sql 语句。
    -- 如果是 查询语句使用率额mysql_query();就要使用 mysql_use_result() 和 mysql_fetch_row();
          mysql_use_result(); 返回一个 结果集 ;
          mysql_fetch_row();  遍历结果集的每个row.  
          
          
    // #include "Ptt_MySql.h"   // 如果调用了这个 .h 文件,下面有些 有些方法需要更换名称
     
     
    #define MAX 100
     
    Action()
    {
        char *server="127.0.0.1";  // 本地
    unsigned int port = 3306;    //端口号
    char *username = "ndouser";  // 用户名
    char *password = "ndopassword";  // 密码
    char *db_name = "main";    //数据库名称
        unsigned long client_flag = 0;
    int db_connection;  // databases connecion
     
     
    int QueryData;
    char **ResultRow;
     
     
     
    // 连接数据库
    //1、首先先把动态库文件导入,mysql 安装目录下的lib 文件中的libmysql.dll 加载进来。
    int flags = lr_load_dll("libmysql.dll");
    //rc = lr_load_dll("C:\Program Files\MySQL\MySQL Server 5.6\lib\libmysql.dll");  // 个人建议直接把 dll 放到 lr安装目录中,这样能减少很多麻烦的配置
    // 当然你也可以不用这条判断语句,但是为了代码的安全性,加上不为错
         if(flags !=0 )
    {
    // 如果 加载失败,输出信息,并退出当前程序。
    lr_output_message("加载失败");
    lr_abort();
    }    
     
     
    // 2、开始链接数据库 mysql_real_connect() 这个函数来着与 mysql.h 这个头文件中,例子前做过解释
             //a、创建mysql对象
        db_connection = mysql_init(NULL);
    if(db_connection == NULL)
    {
    lr_output_message("分配内存失败");
                 lr_abort();
    }
      flags = mysql_real_connect(db_connection,server,username,password,db_name,port,NULL,client_flag);
      if(flags == NULL)
      {
      lr_output_message("连接数据库失败,错误信息:%s",mysql_error(db_connection));
      mysql_close(db_connection);
      lr_abort();
      }
     
    // 对数据库进行操作,增删改查。
      // 增加 insert  
     
          lr_save_string ("INSERT INTO students  VALUES(991105,'帮主',22,'man','HuNan')","paramInsertQuery");  
          flags = mysql_query(db_connection, lr_eval_string("{paramInsertQuery}"));
          if (flags != 0) {
             lr_error_message("paramInsertQuery 语句错误,错误信息:%s", mysql_error(db_connection));
             //mysql_close(db_connection);
             mysql_close(db_connection);
             lr_abort();
          }
     
     // 删除 delete
          lr_save_string ("delete from students where sname='帮主'","paramDeleteQuery");  
          flags = mysql_query(db_connection, lr_eval_string("{paramDeleteQuery}"));
          if (flags != 0) {
             lr_error_message("paramDeleteQuery 语句错误,错误信息:%s", mysql_error(db_connection));
             //mysql_close(db_connection);
             mysql_close(db_connection);
             lr_abort();
          }
     
     // 改  alter/update 都可以修改,修改的类型不一样,这里就不详细说明了。
     lr_save_string ("update students set sname='花农' where sname = '帮主'","paramUpdateQuery");  
     flags = mysql_query(db_connection, lr_eval_string("{paramUpdateQuery}"));
     if (flags != 0) {
    lr_error_message("paramUpdateQuery 语句错误,错误信息:%s", mysql_error(db_connection));
    //mysql_close(db_connection);
    mysql_close(db_connection);
    lr_abort();
     }
     
     
      // 查 select 
          lr_save_string ("select * from students limit 1","paramSelectQuery");  
     flags = mysql_query(db_connection, lr_eval_string("{paramSelectQuery}"));
     if (flags != 0) {
    lr_error_message("paramSelectQuery 语句错误,错误信息:%s", mysql_error(db_connection));
    //mysql_close(db_connection);
    mysql_close(db_connection);
    lr_abort();
     }
     
          QueryData = mysql_use_result(db_connection);
          if (QueryData == NULL) {
                 lr_error_message("%s", mysql_error(db_connection));
                 mysql_free_result(QueryData);
                 mysql_close(db_connection);
                 lr_abort();
           }
           // 如果结果集包含多行数据,需要多次调用 mysql_fetch_row 直到返回NULL
     
     
           ResultRow = (char **)mysql_fetch_row(QueryData);
       if (ResultRow == NULL) {
               lr_error_message("Did not expect the result set to be empty");
               mysql_free_result(QueryData);
               mysql_close(db_connection);
               lr_abort();
            }
     
     //lr_output_message("%d",mysql_num_rows(ResultRow));
     
             // 保存参数,用于删除这行数据
              lr_save_string(ResultRow[0], "paramID");
              lr_output_message("Order ID is: %s", lr_eval_string("{paramID}"));
              mysql_free_result(QueryData);
    //for(flags=0; ;flags++)
     //{  }
       
     
      mysql_close(db_connection);
         
     
    }
  • 相关阅读:
    文件比较运算符
    中山慧海人才市场9月份 现场招聘会预告
    80后智能科技公司诚聘业务人员
    元豪路灯厂诚聘
    对Discuz的简单认识
    discuz阅读权限的设置作用
    个人对织梦系统的认识
    awvs的用法
    cain使用方法
    CCNA笔记(1)
  • 原文地址:https://www.cnblogs.com/mengmeng1011/p/9061521.html
Copyright © 2011-2022 走看看