各位老大,帮忙看看

litong_master 2002-10-30 01:19:53
我是用ADO来连接sql server 的服务器
用TADOQuery发送sql 数据的计算在后端,只是把结果传到前端的客户,可是
当 ADOQuery->Open()时,整个程序好象死掉一样,不能响应用户。请问该怎么解决。
...全文
31 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Libran 2002-10-30
  • 打赏
  • 举报
回复
1,点工具栏上的[New]按钮,生成一个新的线程对象,再向导里输入类名等;
2,打开新生成线程的.cpp文件,Include你ADOQuery所在的单元头文件;
3,在新建线程的Execute()里写代码:
void __fastcall 线程类名::Execute()
{
单元名->ADOQuery->Open();
}
4,把原来的“ADOQuery->Open()”改为如下代码:
::new 线程类名(false);
litong_master 2002-10-30
  • 打赏
  • 举报
回复
up
litong_master 2002-10-30
  • 打赏
  • 举报
回复
这个问题是不是太简单了
牧牛人软件 2002-10-30
  • 打赏
  • 举报
回复
给你一个例程:


int __fastcall TMainForm::ExecuteSQL( AnsiString SqlString, int Flag )
{
int iResult = 0;

try
{
CloseSQL();
if ( ! ADOQuery1->Active )
{
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add( SqlString );
if ( Flag == 1 )
{
ADOQuery1->Open();
if ( ADOQuery1->Active )
iResult = 1;
}
else
iResult = ADOQuery1->ExecSQL();
}
}
catch( ... )
{
}

return iResult;
}

void __fastcall TMainForm::CloseSQL()
{
try
{
if ( ADOQuery1->Active )
ADOQuery1->Close();
}
catch( ... )
{
if ( ADOQuery1->Active )
ADOQuery1->Close();
}
}

litong_master 2002-10-30
  • 打赏
  • 举报
回复
快帮忙啊
litong_master 2002-10-30
  • 打赏
  • 举报
回复
up
litong_master 2002-10-30
  • 打赏
  • 举报
回复
老大能不能看到代码
invalid 2002-10-30
  • 打赏
  • 举报
回复
可以下载我的csdn监控程序哦,其中就是用到多线程来监控web服务器,把线程改动就可以用。
http://album5.chinaren.com/album/17/22/272217/152698.rar
litong_master 2002-10-30
  • 打赏
  • 举报
回复
我是在一个Button的onClik事件中执行的
你是说要用多线程来执行
csz_cmy 2002-10-30
  • 打赏
  • 举报
回复
menu new -> thread //ok
look............
litong_master 2002-10-30
  • 打赏
  • 举报
回复
能举个例子吗?最好有代码
Libran 2002-10-30
  • 打赏
  • 举报
回复
把ADOQuery->Open()放在单独的线程里;不过要注意,在线程结束以前,不能操作数据

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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