程序出现蓝屏是什么原因?

zhoucongjun 2002-04-25 12:04:04
我是用一个新线程来完成数据库查询和邮件收取的,线程代码如下:
程序每次运行都出现蓝屏,请大虾指点
__fastcall getmail::getmail(bool CreateSuspended)
: TThread(CreateSuspended)
{
}
//---------------------------------------------------------------------------
void __fastcall getmail::Execute()
{
Form1->Caption="updated in thread";
ShowMessage("thread start ok");
Synchronize(get);
//---- Place thread code here ----
}
//---------------------------------------------------------------------------
void __fastcall getmail::get()
{
TADOConnection *ADOConn=new TADOConnection(NULL);
TADOQuery *ADOQuery=new TADOQuery(NULL);
TADOQuery *ADDQuery=new TADOQuery(NULL);
TNMPOP3 *mail=new TNMPOP3(NULL);
AnsiString pophost,username,password;
AnsiString email_from,email_to,email_cc,email_subject,email_content,datetime;
int email_id;
//连接到数据库
try
{
ADOConn->Close();
ADOConn->LoginPrompt=false;
ADOConn->ConnectionString="Provider=SQLOLEDB.1;Password=loveberyl;Persist Security Info=True;User ID=sa;Initial Catalog=netsecdb;Data Source=192.168.0.3";
ADOConn->Open();
ADOQuery->Connection=ADOConn;
ADDQuery->Connection=ADOConn;
//取得邮箱列表
ADOQuery->Close();
ADOQuery->SQL->Clear();
ADOQuery->SQL->Add("select net_webmail_p.username,net_webmail_p.passwd,net_webmail_pop3.pop3server from net_webmail_p,net_webmail_pop3 where net_webmail_p.webserver=net_webmail_pop3.webserver");
ADOQuery->Open();
for(int i=0;i<ADOQuery->RecordCount;i++)
{
pophost=ADOQuery->FieldByName("pop3server")->AsString;
username=ADOQuery->FieldByName("username")->AsString;
password=ADOQuery->FieldByName("passwd")->AsString;
ShowMessage(pophost+username+password);
//开始获取邮件
mail->DeleteOnRead=false;
mail->Host=pophost;
mail->Port=110;
mail->UserID=username;
mail->Password=password;
mail->TimeOut=20000;
mail->Connect();//开始连接
Form1->Button1->Caption=IntToStr(mail->MailCount);
for(int i=1;i<=mail->MailCount;i++)
{
mail->GetMailMessage(i);
// email_to=username+"@"+pophost;
email_from=mail->MailMessage->From;
email_subject=mail->MailMessage->Subject;
email_id=StrToInt(mail->MailMessage->MessageId);
email_cc="zhoucj@ethercity.net";
email_content="test mail";
Form1->ListBox1->Items->Add(email_from+email_subject);
// ADDQuery->Close();
//ADDQuery->SQL->Clear();
//ADDQuery->SQL->Add("insert into net_webmail(unit_id,email_from,email_to,email_cc,email_subject,email_content,email_encypt) values(:uid,:from,:to,:cc,:subject,:content,:encypt)");
//ADDQuery->Parameters->ParamByName("uid")->Value=email_id;
//ADDQuery->Parameters->ParamByName("from")->Value=email_from;
//ADDQuery->Parameters->ParamByName("to")->Value=email_to;
//ADDQuery->Parameters->ParamByName("cc")->Value=email_cc;
//ADDQuery->Parameters->ParamByName("subject")->Value=email_subject;
//ADDQuery->Parameters->ParamByName("content")->Value=email_content;
//ADDQuery->Parameters->ParamByName("encypt")->Value=1;
//ADDQuery->ExecSQL();
}
mail->Disconnect();
ADOQuery->Next();
}
}
__finally
{
delete mail;
delete ADOQuery;
delete ADDQuery;
delete ADOConn;
}
}
...全文
95 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
invalid 2002-04-25
  • 打赏
  • 举报
回复
是不是因为没有关闭Query就删除啊?
zhoucongjun 2002-04-25
  • 打赏
  • 举报
回复
程序循环都没有执行完呢

13,825

社区成员

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

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