pb null object reference at line 如何处理?

zc062981 2020-11-23 11:41:01
String appid = 'wx1540c9047a15'//替换
String appSecret = 'b1ab812b8d7760b7005d5'//替换
string ls_import,ls_export,ls_accesstoken,ls_tokenjson,ls_response
String ls_url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential'+'&appid='+appid+'&secret='+appSecret
string ls_pushurl
String ls_data

OleObject lole
lole = CREATE oleobject
lole.ConnectToNewObject("Microsoft.XMLHttp")

lole.open("POST",ls_url, false)

lole.setRequestHeader("Content-type", "application/json; encoding=utf-8")
lole.setRequestHeader("accept","*/*")
lole.setRequestHeader("connection","Keep-Alive")
lole.setRequestHeader("user-agent","Mozilla/4.0(compatible; MSIE 6.0; Windows NT 5.1;SV1)")
lole.setRequestHeader('Content-Length',string(len(ls_data)))
lole.send(ls_data)

ls_tokenjson = lole.responseText

ls_accesstoken = mid(ls_tokenjson,18,157)


ls_pushurl = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token="+ls_accesstoken


string ls_column,ls_name,ls_un,ls_um,ls_lajifei,ls_amount,ls_sewage,ls_cusid,ls_fdate
long ll_row1,ll_openid
int i,li_return,j
String sstart,skey1,skey2,skey3,skey4,skey5,smark,send,inputString;
String ls_openid
ll_row1=dw_1.rowcount();

if ll_row1>0 then
for i=1 to ll_row1
ls_openid='';
ls_cusid=dw_1.getitemstring(i,"customer_cusid");

ls_sewage=string(dw_1.GetItemDecimal(i,"sewage"));

ls_lajifei=string(dw_1.GetItemDecimal(i,"lajifei"));

ls_amount=string(dw_1.GetItemDecimal(i,"amount"));

ls_um=string(dw_1.GetItemDecimal(i,"um"));

ls_un=string(dw_1.GetItemDecimal(i,"un"));

ls_fdate=left(sle_3.text,4)+'年'+right(sle_3.text,2)+'月';

ls_name=dw_1.getitemstring(i,"customer_name");


dw_2.retrieve(ls_cusid)
ll_openid=dw_2.rowcount();
if ll_openid>0 then
for j=1 to ll_openid
ls_openid=dw_2.getitemstring(j,"openid");



sstart='{"data":{"first": {"value": "催缴通知"},';
skey1='"keyword1":{"value":"'+ ls_name+'"},';

skey2='"keyword2":{"value":"'+ ls_cusid+'"},';


skey3='"keyword3":{"value":"'+ ls_fdate+'"},';

skey4='"keyword4":{"value": "'+ls_un+'T"},';
skey5='"keyword5":{"value": "'+ls_amount+'元"},';

smark='"remark":{"value": "水量'+ls_un+'T,金额'+ls_um+'元,污水费'+ls_sewage+'元,垃圾处理费'+ls_lajifei+'元,请与月底之前交清费用。"}},';
send='"template_id":"aPgAzW_NdkMP2R1w-Kzhk8KR1vIRniw5RRL6vb0ThMI","touser":"'+ls_openid+'"}';
inputString=sstart+skey1+skey2+skey3+skey4+skey5+smark+send;
ls_data=inputString






lole.open("POST",ls_pushurl, false)

lole.setRequestHeader("Content-type", "application/json; encoding=utf-8")

lole.setRequestHeader('Content-Length',string(len(ls_data)))
lole.send(ls_data);

ls_export = lole.responseText ;





destroy lole



next
end if
next
end if
messagebox('通知','发送成功')

...全文
1242 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
acen_chen 2020-12-11
  • 打赏
  • 举报
回复
destroy在循环外就行了
qq_27481787 2020-12-04
  • 打赏
  • 举报
回复
你的create在循环外,destroy在循环内,第一次执行后就destroy了,第二次肯定就null object 了
zc062981 2020-11-24
  • 打赏
  • 举报
回复
引用 1 楼 feixianzhi 的回复:
Microsoft.XMLHttp控件没注册?

应该是注册上了,因为发送一条信息就没问题,可以接收成功,发送数据窗口中多条数据时就报错了。
zc062981 2020-11-24
  • 打赏
  • 举报
回复
你好,发送一条时可以成功,发送两条或两条以上就报错这个错误了。
feixianzhi 2020-11-23
  • 打赏
  • 举报
回复
Microsoft.XMLHttp控件没注册?

1,077

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧