社区
C++ Builder
帖子详情
求一线程!
kinglh
2004-10-25 04:17:15
我想用一个线程来联接数据库,这个线程的功能是:查询数据库中是否有记录的Flag = 0的记录,要是有则把它的一个字段(Flag)修改为1,显示该条记录(这个暂时不管),(新添加的记录时Flag = 0).
我原来用一个TTimer控件! 把这个功能每几秒钟执行一次!这样联接远程数据库会很慢! 影响主窗口的其实操作~!
请问一个线程怎样做!最好能做成同步的线程!
谢谢!
...全文
125
5
打赏
收藏
求一线程!
我想用一个线程来联接数据库,这个线程的功能是:查询数据库中是否有记录的Flag = 0的记录,要是有则把它的一个字段(Flag)修改为1,显示该条记录(这个暂时不管),(新添加的记录时Flag = 0). 我原来用一个TTimer控件! 把这个功能每几秒钟执行一次!这样联接远程数据库会很慢! 影响主窗口的其实操作~! 请问一个线程怎样做!最好能做成同步的线程! 谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
gyj_china
2004-11-18
打赏
举报
回复
写成服务吧?其实服务也是一个线程,而且又系统自己管理,很方便的。下面是连接和执行部分的代码,你可以用向导生成服务,再添加如下代码。
void __fastcall TCustomService::ServiceExecute(TService *Sender)
{
while(!Terminated)
{
try{
AnsiString strSQL = "select flag from ds_sys_reg where flag = 0";
DScan->SQL->Clear();
DScan->SQL->Add(strSQL); //上行表中查找驾校业务数据
DScan->Open();
while (!DScan->Eof)
{
DScan->Edit();
DScan->FieldValues["flag"] = 1;
DScan->Post();
DScan->Next();
}
}catch(...)
{
buf = Now();
fp = fopen("c:\\server0731.log","a+");
fprintf(fp,"[%s] 服务异常中断,主线程15秒后重连。\n",buf);
fclose(fp);
Sleep(15000); //数据断开后15秒重连
Connection();
}
Sleep(100);
ServiceThread->ProcessRequests(false);
}
}
void __fastcall TCustomService::Connection()
{
AnsiString strConnect;
try{
//建立数据数据链接
ADOConnection1->Connected = false;
strConnect = "Provider=SQLOLEDB.1;Password=123;Persist Security Info=True;User ID=sa;Initial Catalog=DataBaseName;Data Source=127.0.0.1";
ADOConnection1->LoginPrompt = false;
ADOConnection1->ConnectionString = strConnect;
ADOConnection1->Connected = true;
buf = Now();
fp = fopen("c:\\Server.log","a+");
fprintf(fp,"[%s] 网络连接成功OK\n",buf);
fclose(fp);
}catch(...)
{
buf = Now();
fp = fopen("c:\\Server.log","a+");
fprintf(fp,"[%s] 初始化网络连接错误\n",buf);
fclose(fp);
}
}
kinglh
2004-10-29
打赏
举报
回复
怎么没人来拿分~ 真的要我把分钱部给一个人!?
kinglh
2004-10-26
打赏
举报
回复
只考虑连接问题!
我用ADO连接数据库, 当网络断开不能上网,也就是连接不到数据库的时候,该线程提示连接失败,并且每隔一个时间(如一分钟)再重连接一次.
有没有人知道怎么样做!! 出来帮帮忙了~
kinglh
2004-10-25
打赏
举报
回复
现在不是考虑怎样操作数据库的问题,因为我的数据库是远程的,在本在用ADO去联接!只要有新记录添加就时实的把它修改.
ESSENCE_JN(BCB爱好者) 现在不要讨论数据库的操作问题!
罗杰斯
2004-10-25
打赏
举报
回复
我感觉不是线程不线程的问题,Flag=0的时候都做了些什么?又为什么要改为1?我感觉还是逻辑上的错误吧。
WPF多
线程
演示
WPF多
线程
演示
下载 多
线程
编程技术开发资料 高清完整PDF版
多
线程
编程技术开发资料.pdf 个人收集电子书,仅用学习使用,不可用于商业用途,如有版权问题,请联系删除!
Android应用程序消息处理机制
Android应用程序与传统的PC应用程序一样,都是消息驱动的。也就是说,在Android应用程序主
线程
中,所有函数都是在一个消息循环中执行的。Android应用程序其它
线程
,也可以像主
线程
一样,拥有消息循环。Android应用程序主
线程
是一个特殊的
线程
,因为它同时也是UI
线程
以及触摸屏、键盘等输入事件处理
线程
。主
线程
对消息循环很敏感,一旦发生阻塞,就会影响UI的流畅度,甚至发生ANR问题。这个PPT讲Android应用程序
线程
消息循环原理,主要涉及到Handler和Looper两个类,以及根据消息循环的不同使用场景,总结出三种
线程
使用模型。掌握Android应用程序消息处理机制,有助于我们熟练地使用同步和异步编程,提高程序的运行性能
Android应用程序输入事件处理机制
在Android应用程序中,有一类特殊的消息,是专门负责与用户进行交互的,它们就是触摸屏和键盘等输入事件。触摸屏和键盘事件是统一由系统输入管理器InputManager进行分发的。也就是说,InputManager负责从硬件接收输入事件,然后再将接收到的输入事件分发当前激活的窗口处理。此外,InputManager也能接收模拟的输入事件,用来模拟用户触摸和点击等事件。当前激活的窗口所运行在的
线程
接收到InputManager分发过来的输入事件之后,会将它们封装成输入消息,然后交给当前获得焦点的控件处理。这个PPT讲Android应用程序输入事件的分发和处理过程,主要涉及到输入管理InputManager、输入事件监控
线程
InputReader、输入事件分发
线程
InputDispatcher,以及应用程序主
线程
消息循环。
多
线程
!!
多
线程
Thread(
线程
) 简述:多条执行路径,主
线程
和子
线程
并行交替执行 三种创建
线程
的方式 1、继承Thread方法 自定义
线程
类继承Thread类 重写run()方法,编写
线程
执行体 创建
线程
对象,调用start()方法启动
线程
package com.sgl.demo01; //创建
线程
方式一:继承Thread类,重写run()方法,调用start开启
线程
public class TestThread1 extends Thread{ @Override public vo
C++ Builder
13,873
社区成员
102,696
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章