LR动态链接数据库

来源:互联网 发布:淘宝5xl的裤子是多少码 编辑:程序博客网 时间:2024/04/28 09:45


LR本身并不提供动态的到数据库中取获取数据,一个极其简单的一个动态链接库,这只是个范例,希望大家以后会不断地完善它,而且此动态链接库只提供去一条记录!呵呵!以后有兴趣的话我会完善一下它!此动态链接库在SQL Server测试成功!
下面是dll提供的API介绍!

int init_db(char* connectString);
input:
connectString--为SQL链接串
output:0---代表成功,非0--代表失败
int execSQL(char* sql);
input:sql--你需要执行的sql语句
output:0---代表成功,非0--代表失败
int bindCol(int col,char* colname,char col_type,int length)
input:
col--表示SQL中的列号
colname--表示你需要获取SQL的值
col_tyoe:有两种c--代表字符型i---代表int
length---代表着你去的值长度是多少
int fetchData();
获取值
void disConnect();
断掉数据库链接以及释放内存

 


LR调用:
你把dll拷贝到LRscripts中就成了!或者按照如下方式加载:
全局的动态链接库的调用则需要修改mdrv.dat,路径在LoadRunner的安装目录下面(LoadRunner/dat directory);在里面修改如例:
[WinSock]
ExtPriorityType="protocol"
WINNT_EXT_LIBS="wsrun32.dll"
WIN95_EXT_LIBS="wsrun32.dll"
LINUX_EXT_LIBS="liblrs.so"
SOLARIS_EXT_LIBS="liblrs.so"
HPUX_EXT_LIBS="liblrs.sl"
AIX_EXT_LIBS="liblrs.so"
LibCfgFunc="winsock_exten_conf"
UtilityExt="lrun_api"
ExtMessageQueue="0"
ExtCmdLineOverwrite="-WinInet" No
ExtCmdLineConc="-UsingWinInet" No
WINNT_DLLS="user_dll1.dll," user_dll2.dll, ...
//最后一行是加载你需要的DLL

LR脚本示例:
char msgid[80],sp[20];
lr_load_dll("GetData.dll");
i=init_db("DRIVER={SQL Server};SERVER=*****;UID=******;PWD=*****;DATABASE=******");
lr_output_message("i=%d",i);
i+=execSQL("select top 1 org_msgid,sp_number from msg");
lr_output_message("i=%d",i);
i+=bindCol(1,msgid,"c",77);
i+=bindCol(2,sp,"c",6);
lr_output_message("i=%d",i);
i+=fetchData();
lr_output_message("i=%d",i);
lr_output_message("i=%s",msgid);
lr_output_message("i=%s",sp);
disConnect();

 


在判断结束100为记录的结束的标识符,在调用DLL之初、结束以及出错时自动将日志输出到当前目录的dll.log中去!
程序参考:
int i=0;
int j;
char msgid[80],sp[20];
lr_load_dll("GetData.dll");
i=init_db("DRIVER={SQL Server};SERVER=*****;UID=**;PWD=***;DATABASE=*****");
lr_output_message("i=%d",i);
i+=execSQL("select top 10 org_msgid,sp_number from msg");
lr_output_message("i=%d",i);
i+=bindCol(1,msgid,"c",77);
i+=bindCol(2,sp,"c",6);
lr_output_message("i=%d",i);
while (i!=100)
{
i=fetchData();
lr_output_message("i=%d",i);
lr_output_message("i=%s",msgid);
lr_output_message("i=%s",sp);
}
disConnect();

新增加init_hstmt()以及disConnect_hstmt()两个API
init_hstmt()函数将传出一个long类型的hstmt变量,调用方式:

long hstmt;
init_hstmt(&hstmt);

disConnect_hstmt(hstmt);

--------------------------------------------------------------------------------

GetData.dll
 描述: 获取数据库中的值
 
 文件大小:  208.05 KB

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/csl_sophie/archive/2008/08/01/2750818.aspx