51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3166|回复: 9
打印 上一主题 下一主题

[原创] loadrunner 连接oracle数据库判断事务的成功失败,

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2011-3-8 10:33:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
lrd_ora8_stmt(OraStm1, "select count(*) from call_list t where t.status_fk='2'and t.id=" "'2011022100000501'\n", 1, 0, 0);
        lrd_ora8_attr_set(OraStm1, PREFETCH_ROWS, "0", -1, 0);
        lrd_ora8_attr_set(OraStm1, PREFETCH_MEMORY, "0", -1, 0);
        lrd_ora8_exec(OraSvc1, OraStm1, 0, 0, &uliRowsProcessed, 0, 0, 0, 0,
        0);
        lrd_ora8_bind_col(OraStm1, &OraDef1, 1, &NUM, 0, 0);
    //lrd_ora8_save_col (OraStm1, 1, 1, 0, "ROW");
    lrd_ora8_fetch(OraStm1, -1, 100, &uliFetchedRows, PrintRow12, 2, 0, 0);
错误:Action.c (44): type error in argument 6 to `lrdfnc_ora8_fetch'; found `unsigned long' expected `pointer to int function(const pointer to void,const unsigned long)'
d:\\program files\\mercury\\loadrunner\\scripts\\blue\\\\combined_blue.c (6): 1 errors, not writing pre_cci.ci
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2011-3-8 10:34:20 | 只看该作者
如果把:    lrd_ora8_fetch(OraStm1, -1, 100, &uliFetchedRows, PrintRow12, 2, 0, 0);
修改为    lrd_ora8_fetch(OraStm1, -1, 100, &uliFetchedRows, 0, 2, 0, 0);
报以下错误:Action.c(37): lrd_ora8_stmt: ERROR, return-code=LRDE2090
请各位大侠帮忙看看啊
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2011-3-8 10:34:34 | 只看该作者
脚本如下:
#include<lrd.h>
static LRD_INIT_INFO InitInfo={LRD_INIT_INFO_EYECAT};
static LRD_DEFAULT_DB_VERSION DBTypeVersion[]={{LRD_DBTYPE_NONE,LRD_DBVERSION_NONE}};
static LRD_VAR_DESC NUM ={LRD_VAR_DESC_EYECAT, 15, 23, LRD_DBTYPE_ORACLE, {1, 1, 0},DT_NUMERIC};

static void FAR * OraEnv1;
static void FAR * OraSvc1;
static void FAR * OraSrv1;
static void FAR * OraSes1;
static void FAR * OraStm1;
static void FAR * OraDef1;
vuser_init()
{
        lrd_init(&InitInfo,DBTypeVersion);
        lrd_initialize_db(LRD_DBTYPE_ORACLE,3,0);
        lrd_env_init(LRD_DBTYPE_ORACLE,&OraEnv1,0,0);
        lrd_ora8_handle_alloc(OraEnv1,SVCCTX,&OraSvc1,0);
        lrd_ora8_handle_alloc(OraEnv1,SERVER,&OraSrv1,0);
        lrd_ora8_handle_alloc(OraEnv1,SESSION,&OraSes1,0);
       
        //设置数据库名称,我的是oracle,odbc中连接数据库名称就是这个
        lrd_server_attach(OraSrv1, "190TP_172.17.225.190", 20, 0, 0);
        lrd_ora8_attr_set_from_handle(OraSvc1,SERVER,OraSrv1,0,0);
       
        //用户名和密码
        lrd_ora8_attr_set(OraSes1,USERNAME,"TP1",-1,0);
        lrd_ora8_attr_set(OraSes1,PASSWORD,"TP1",-1,0);
        lrd_ora8_attr_set_from_handle(OraSvc1,SESSION,OraSes1,0,0);
        lrd_session_begin(OraSvc1,OraSes1,1,0,0);
        lrd_ora8_handle_alloc(OraEnv1,STMT,&OraStm1,0);
        return 0;
}
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2011-3-8 10:35:00 | 只看该作者
Action()
{
    unsigned long rownum;
        unsigned long uliFetchedRows;
        unsigned long uliRowsProcessed;
        unsigned long PrintRow12;
        static void FAR * OraStm1;
unsigned long  ROW;

lrd_ora8_stmt(OraStm1, "select count(*) from call_list t where t.status_fk='2'and t.id=" "'2011022100000501'\n", 1, 0, 0);
        lrd_ora8_attr_set(OraStm1, PREFETCH_ROWS, "0", -1, 0);
        lrd_ora8_attr_set(OraStm1, PREFETCH_MEMORY, "0", -1, 0);
        lrd_ora8_exec(OraSvc1, OraStm1, 0, 0, &uliRowsProcessed, 0, 0, 0, 0,
        0);
        lrd_ora8_bind_col(OraStm1, &OraDef1, 1, &NUM, 0, 0);
    //lrd_ora8_save_col (OraStm1, 1, 1, 0, "ROW");
    lrd_ora8_fetch(OraStm1, -1, 100, &uliFetchedRows, 0, 2, 0, 0);

        lr_end_transaction("T_Egressive_brief_summary", LR_AUTO);

        return 0;                                                                                       
}
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2011-3-8 10:35:09 | 只看该作者
vuser_end()
{
        lrd_session_end(OraSvc1, OraSes1, 0, 0);
        lrd_server_detach(OraSrv1, 0, 0);
        lrd_handle_free(&OraEnv1, 0);
        return 0;
}
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2011-3-9 09:33:32 | 只看该作者
大侠们帮帮看看,急。在线等
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2011-3-9 15:43:24 | 只看该作者
已解决,如下:
        #include "lrd.h"
        static LRD_INIT_INFO InitInfo={LRD_INIT_INFO_EYECAT};
        static LRD_DEFAULT_DB_VERSION DBTypeVersion[]={{LRD_DBTYPE_NONE,LRD_DBVERSION_NONE}};
        static LRD_VAR_DESC NUM ={LRD_VAR_DESC_EYECAT, 15, 23, LRD_DBTYPE_ORACLE, {1, 1, 0},DT_NUMERIC};
        static void FAR * OraEnv1;
        static void FAR * OraSvc1;
        static void FAR * OraSrv1;
        static void FAR * OraSes1;
        static void FAR * OraStm1;
        static void FAR * OraDef1;
        static unsigned long rownum;
        static unsigned long uliFetchedRows;
        static unsigned long uliRowsProcessed;
        char  ROW;

vuser_init()
{
       
        lrd_init(&InitInfo,DBTypeVersion);
        lrd_initialize_db(LRD_DBTYPE_ORACLE,3,0);
        lrd_env_init(LRD_DBTYPE_ORACLE,&OraEnv1,0,0);
        lrd_ora8_handle_alloc(OraEnv1,SVCCTX,&OraSvc1,0);
        lrd_ora8_handle_alloc(OraEnv1,SERVER,&OraSrv1,0);
        lrd_ora8_handle_alloc(OraEnv1,SESSION,&OraSes1,0);

        lr_think_time(5);

        //设置数据库名称,我的是oracle,odbc中连接数据库名称就是这个
        lrd_server_attach(OraSrv1, "190TP_172.17.225.190", -1, 0, 0);
        lrd_ora8_attr_set_from_handle(OraSvc1,SERVER,OraSrv1,0,0);
        lr_think_time(5);
       
        //用户名和密码
        lrd_ora8_attr_set(OraSes1,USERNAME,"TP1",-1,0);
        lrd_ora8_attr_set(OraSes1,PASSWORD,"TP1",-1,0);
        lrd_ora8_attr_set_from_handle(OraSvc1,SESSION,OraSes1,0,0);
        lrd_session_begin(OraSvc1,OraSes1,1,0,0);
        lrd_ora8_handle_alloc(OraEnv1,STMT,&OraStm1,0);
        return 0;
}
回复 支持 反对

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2011-3-9 15:43:45 | 只看该作者
LAST);*/
                lrd_ora8_stmt(OraStm1, "select count(*) from call_list where status_fk='2'and id='{p_callid}'", 1,0,0);
                lrd_ora8_exec(OraSvc1, OraStm1, 0, 0,&rownum, 0, 0, 0, 0, 1);
                lrd_ora8_bind_col(OraStm1, &OraDef1, 1, &NUM, 0, 0);
                lrd_ora8_save_col (OraStm1, 1, 1, 0, "ROW");
                lrd_ora8_fetch(OraStm1, -1, 15, &uliFetchedRows, 0, 2, 0, 0);
                lr_output_message("value : %s",  lr_eval_string("The  count is: {ROW}"));        
       
                if(atoi(lr_eval_string("{ROW}"))>0)
                {
                        lr_end_transaction("T_Egressive_brief_summary", LR_PASS);

                }
                else
                {
                        lr_end_transaction("T_Egressive_brief_summary", LR_FAIL);

                }
回复 支持 反对

使用道具 举报

该用户从未签到

9#
 楼主| 发表于 2011-3-9 15:43:54 | 只看该作者
vuser_end()
{       
         lrd_handle_free(&OraStm1, 0);
       
         lrd_session_end(OraSvc1, OraSes1, 0, 0);
       
         lrd_server_detach(OraSrv1, 0, 0);
       
         lrd_handle_free(&OraEnv1, 0);
        return 0;
       
}
回复 支持 反对

使用道具 举报

  • TA的每日心情
    无聊
    2017-4-10 01:47
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    10#
    发表于 2011-9-14 14:18:16 | 只看该作者
    好东西呀
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-9-21 04:39 , Processed in 0.078924 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表