社区
C++ Builder
帖子详情
求一线程!
kinglh
2004-10-25 04:17:15
我想用一个线程来联接数据库,这个线程的功能是:查询数据库中是否有记录的Flag = 0的记录,要是有则把它的一个字段(Flag)修改为1,显示该条记录(这个暂时不管),(新添加的记录时Flag = 0).
我原来用一个TTimer控件! 把这个功能每几秒钟执行一次!这样联接远程数据库会很慢! 影响主窗口的其实操作~!
请问一个线程怎样做!最好能做成同步的线程!
谢谢!
...全文
120
5
打赏
收藏
求一线程!
我想用一个线程来联接数据库,这个线程的功能是:查询数据库中是否有记录的Flag = 0的记录,要是有则把它的一个字段(Flag)修改为1,显示该条记录(这个暂时不管),(新添加的记录时Flag = 0). 我原来用一个TTimer控件! 把这个功能每几秒钟执行一次!这样联接远程数据库会很慢! 影响主窗口的其实操作~! 请问一个线程怎样做!最好能做成同步的线程! 谢谢!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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多
线程
演示
Android多
线程
文件夹下载及断点续传
Android实现网络多
线程
下载,断点续传,压缩包内有两个项目: downloadDemo:多
线程
下载 MulThreadDownloader:断点续传(网上别人的项目)
libevent多
线程
libevent多
线程
, 参考mariotcp 参考http://blog.csdn.net/i_am_jojo/article/details/7587838流程图
Android多
线程
断点续传下载+在线播放音乐
Android多
线程
断点续传下载+在线播放音乐,我想很多小白都想要。
Java.Concurrency.in.Practice.pdf
Java.Concurrency.in.Practice.pdf
C++ Builder
13,870
社区成员
102,693
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章