|
今天使用loadrunner测试oracle,采用网上说明的方法,脚本如下:- #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, 10, 32, LRD_DBTYPE_ORACLE, {1, 1, 0},DT_LONG_VARCHAR};
- static void FAR * OraEnv1;
- static void FAR * OraSvc1;
- static void FAR * OraSrv1;
- static void FAR * OraSes1;
- static void FAR * OraStm1;
- static void FAR * OraDef1;
- unsigned long rownum;
- 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,"test",-1,0,0);
- lrd_ora8_attr_set_from_handle(OraSvc1,SERVER,OraSrv1,0,0);
- //用户名和密码
- lrd_ora8_attr_set(OraSes1,USERNAME,"testuser",-1,0);
- lrd_ora8_attr_set(OraSes1,PASSWORD,"testpwd",-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);
- //这里写上你的sql语句(我主要是需要查询的结果,如果你是插入或修改记录就不用往后看了)
- lrd_ora8_stmt(OraStm1,"select name from ce_receviablecharge where user_no = 2009070901",1,0,0);
- //执行定义的sql,并且将结果行数返回到rownum中
- lrd_ora8_exec(OraSvc1,OraStm1,0,0,&rownum,0,0,0,0,1);
- //绑定该列
- lrd_ora8_bind_col(OraStm1,&OraDef1,1,&NUM,0,0);
- //设定保存列中的某个数据到row中,第二个参数为第几列,第三个参数为第几行(只能保存一个值),最后一个参数就是你想要保存到的parameter名称
- lrd_ora8_save_col(OraStm1, 1, 1, 0, "result");
- return 0;
- }
复制代码 直接这样执行,没有问题,而且看输出,应该是查询数据库成功了。但是我在最后加上一句:- lrd_message(lrd_eval_string("{result}"));
复制代码 却出错了,提示我:Error: Parameter 'result': Parameter is not initialized.
哪位仁兄帮帮忙看看这是什么原因,我找了好久。。。感激不尽 |
|