我写了一个小的dll在LR中动态加载数据库中的值!
LR本身并不提供动态的到数据库中取获取数据,所以昨天下午性情所致,写了一个极其简单的一个动态链接库,这只是个范例,希望大家以后会不断地完善它,而且此动态链接库只提供去一条记录!呵呵!以后有兴趣的话我会完善一下它!此动态链接库在SQL Server测试成功!下载请到www.kernzhang.com DLL文件进行了更新,可以支持取多条记录,并增加自动写日志功能:)需要可以到www.kernzhang.com去下载 帮顶 顶一下下。 斑竹很强哦!要顶一下! 呵呵,我也写了一个差不多的拿来自动测试字符校验 为什么我写的脚本,返回的结果不正确呀.脚本如下:
Action()
{
int i;
char j;
lr_load_dll("getdata.dll");
i=init_db("DRIVER=MySQL ODBC 3.51 Driver;SERVER=192.168.5.31;UID=kingfish1;PWD=kingfish1;DATABASE=kfprod");
lr_output_message("i=%d",i);
j=execSQL("select login_id from users where id='4'");
lr_output_message("j=%s",j);
disConnect();
return 0;
}
运行后的结果显示:
Starting action Action.
Action.c(13): i=0
Action.c(17): j=(null)
Ending action Action.
而实际上sql语句:select login_id from users where id='4', 执行的结果是test.a@test.com
我的脚本哪里不对吗? 怎么没人帮我解答一下呀!!!!sdlkfj7 继续顶.
我后来把脚本改成向数据库中插入数据,结果就能运行成功,且数据库中插入了一条记录.
后来我又查了C语言的有关资料, 把脚本改了一下,
Action()
{
int i;
char j;
char m;
lr_load_dll("getdata.dll");
i=init_db("DRIVER=MySQL ODBC 3.51 Driver;SERVER=192.168.5.31;UID=kingfish1;PWD=kingfish1;DATABASE=kfprod");
lr_output_message("i=%d",i);
j=execSQL("select login_id into :m from users where id='4'");
lr_output_message("m=%s",m);
disConnect();
return 0;
}
运行后的结果显示:
Starting action Action.
Action.c(13): i=0
Action.c(17): m=(null)
Ending action Action.
为什么还是不对呀?有哪位高手可以帮忙指点一下吗?万分感谢了! 强顶一下! 查询语句尤其在用lr进行用户并发测试的时候会造成额外负担,有需要的话还是之前写程序把数据库的东西导成数据文件,把准备工作在负载这做好而不要加到服务器端,如果大批量并发的时候,查询也会给记入性能记录的。而且这样并不一定符合真实的情况,这个只是个人见解。不过lz真的很牛,很牛
牛
肉
干 谢谢kernzhang!
回复 7# 的帖子
楼主不厚道,有些东西保留了没有全说我经过反复测试,历经痛苦的N多失败后,得出
aip函数:execSQL()有两个参数,第一是‘数据库名’,第二个是‘你要执行的语句’,
你的代码修改成这样看看
Action()
{
int i;
char j;
lr_load_dll("getdata.dll");
i=init_db("DRIVER=MySQL ODBC 3.51 Driver;SERVER=192.168.5.31;UID=kingfish1;PWD=kingfish1;DATABASE=kfprod");
lr_output_message("i=%d",i);
j=execSQL("kfprod","select login_id from users where id='4'");
lr_output_message("j=%s",j);
disConnect();
return 0;
}
[ 本帖最后由 blackboyzb 于 2007-11-15 12:23 编辑 ] LZ下载地址打不开啊........期待....(songyq521@163.com) 楼主最好吧dll丢成附件吧,网站打不开 i=init_hstmt(&ll_hstmt);
if (i!=0)
{
lr_output_message("%s","init hstmt error");
return 0;
}
不明白,我的老是这样i=init_hstmt(&ll_hstmt); 不通过 int init_hstmt(long* ll_hstmt);
LZ能解释下这个函数吗!?特别是这个ll_hstmt参数...谢谢 网站打不开哦
lz,测试了下, i= init_db("DRIVER={Microsoft ODBC for DB2};SERVER=192.168.1.16;UID=db2inst1;PWD=db2inst1;DATABASE=FMP"),i=4,连接数据库失败,能告知返回码是4是什么错误吗?还是不支持DB2?求解! lz,测试了下, i= init_db("DRIVER={Microsoft ODBC for DB2};SERVER=192.168.1.16;UID=db2inst1;PWD=db2inst1;DATABASE=FMP"),i=4,连接数据库失败,能告知返回码是4是什么错误吗?还是不支持DB2?求解!
页:
[1]