多线程扫描数据库(Oracle8i)(PBNI 多线程 全反射 提醒 临听数据库)

184270428 2011-03-14 01:23:49
通PBNI传入VC代码所需数据,在VC端开启扫描线程。
扫描线程,若扫描到满足条件的数据,向PB窗口发送消息(这个消息号,和窗口句柄是由PB传过来的)
http://download.csdn.net/source/2980115
...全文
162 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
sbigwolf 2011-10-02
  • 打赏
  • 举报
回复
孙兄,我将您的代码修改一下,想将数据库连接的 sqlca.dbhandle()句柄传递过来,这样不用再连接断开调用,但是在执行游标打开的时候,发现无法打开?您是否可以调整修改一下?
VOID FAR pb_notify(long al_sqlca_handle ,HWND hwnd,UINT msg)
{

Lda_Def FAR *pLda ;
Cda_Def FAR *pCda;
ub1 hda[HDA_SIZE];
sword rowcount;

#define DEFER_PARSE 1
#define VERSION_7 2
try
{
memset(hda,0,HDA_SIZE);
pLda = (Lda_Def FAR *)al_sqlca_handle; //此处是使用pb 传入的sqlca.dbhandle()传入进来的
if ( oopen(pCda,pLda,NULL, -1, -1, NULL, -1) !=0)
{
messagebox(hwnd,"开辟游标区失败","",0) ;
return ;
}
if(! pCda )
{
return ;
}
if(oparse(pCda,(OraText *)sql.c_str(), -1, DEFER_PARSE, (ub4) VERSION_7) == 0)
{
if (odefin(pCda, 1, (ub1 *) &rowcount, (sword) sizeof(sword),(sword) INT_TYPE,(sword) -1, (sb2 *) 0, (text *) 0, -1, -1,(ub2 *) 0, (ub2 *) 0)==0)
{
if(oexfet(pCda, (ub4)1, FALSE, FALSE)==0)
{
if(rowcount > 0)
{
if (::IsWindow(hwnd) && msg >= WM_USER)
::PostMessage(hwnd,msg,0,0);
}

}
}
if(oclose(pCda))
{
return ;
}
}
}
catch(...)
{}
}

184270428 2011-03-19
  • 打赏
  • 举报
回复
我即愿把源程序供大家学习,难道一点点分都舍不得?
lao_bulls 2011-03-18
  • 打赏
  • 举报
回复
太贵了。
sbigwolf 2011-03-18
  • 打赏
  • 举报
回复
我正在使用oci的方式,但是看文档,觉得occi比较好。
184270428 2011-03-18
  • 打赏
  • 举报
回复
串口应用、多线程、怎么编写DLL(PB105 + VC2008 + sql server2000)

http://download.csdn.net/source/3103669
184270428 2011-03-14
  • 打赏
  • 举报
回复
PB变参方法的实现(形如f(...)的对象方法。)
http://download.csdn.net/source/2980182

397

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 非技术版
社区管理员
  • 非技术版社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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