首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

用短信猫写了一个程序,今天早下来了不能发短信了,为什么

2013-01-05 
用短信猫写了一个程序,今天早上来了不能发短信了,为什么?请大家帮忙看看:主要用了timer控件,每5分钟向数据

用短信猫写了一个程序,今天早上来了不能发短信了,为什么?
请大家帮忙看看:主要用了timer控件,每5分钟向数据库查询一次看看有没有数据。早上来了看看不能用,只用重新启动程序才能用,程序在服务器上,总不能每天都要重启呀,谢谢大家,请看看哪里有问题,难道timer会自动关闭?
procedure TForm1.Button1Click(Sender: TObject);
var
  Mobile_Type:pchar;
  CopyRight:pchar;
  CopyRightToCOM:pchar;
begin
  CopyRight:=PChar('//XXX公司,网址www.sohu.com//');
  if Sms_Connection(CopyRight,StrToInt(Edit1.text),9600,Mobile_Type,CopyRightToCOM)<>0 then
    begin
      Label1.Caption:='连接成功,芯片为:'+Mobile_Type+'!';
    end
  else
    Label1.Caption:='连接失败!'
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  Sms_Disconnection;
  Label1.Caption:='已断开!';
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var  i ,j : integer;
begin
  IDList.Clear;
  MobileList.Clear;
  ContentList.Clear;
  if mybase.RecordCount('TB_SendMessage','isSent','0') > 0 then
  begin 
    mybase1.SQL := 'select * from  TB_SendMessage where isSent = 0 ';
    temQuery1 :=  mybase1.OpenQuery;
    temQuery1.First;
    for i := 0 to  temQuery1.RecordCount - 1 do
    begin
      IDList.Add(temQuery1.fieldbyname('ID').AsString);
      MobileList.Add(temQuery1.fieldbyname('receivers').AsString);
      ContentList.Add(temQuery1.fieldbyname('title').AsString);
      temQuery1.Next;
    end;
    //mybase1.DisConnetServer;
//-----------------------------------发送短信---------------------------------//
    for j := 0 to  IDList.Count - 1 do
    begin
      if Sms_Send(mobilelist[j],ContentList[j]) = 1 then
      begin
        myList := listView1.Items.Add;
        MyList.Caption := inttostr(j);
        MyList.SubItems.Add(mobilelist[j]);
        Mylist.SubItems.Add(ContentList[j]);
        Mylist.SubItems.Add(datetimetostr(now()));
        Mylist.SubItems.Add('发送成功'); 
        mybase2.UpdateIsSent(IDList[j]);
        //mybase2.DisConnetServer;
        //showmessage('发送成功!');
        sleep(15000);
      end else
      begin
        myList := listView1.Items.Add;
        MyList.Caption := inttostr(j);
        MyList.SubItems.Add(mobilelist[j]);
        Mylist.SubItems.Add(ContentList[j]);
        Mylist.SubItems.Add(datetimetostr(now()));
        Mylist.SubItems.Add('发送失败');


        //showmessage( IDList[j]+'shibai');
        //mybase2.UpdateIsSent(IDList[j]);
        //showmessage('发送失败!');
        sleep(15000);
      end;
    end;
  end;
  //mybase.DisConnetServer;
end;


procedure TForm1.FormActivate(Sender: TObject);
begin
  IDList := TstringList.Create;
  MobileList := TstringList.Create;
  ContentList := TstringList.Create;
  mybase := TDBBase.Create;
  mybase1 := TDBBase.Create;
  mybase2 := TDBBase.Create;
  temQuery1 := TADOQuery.Create(nil);

  mybase.ConnetServer();
  mybase1.ConnetServer();
  mybase2.ConnetServer();

  button1.OnClick(button1);
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  IDList.Free;
  IDList := nil;
  MobileList.Free;
  MobileList := nil;
  ContentList.Free;
  ContentList := nil;
  mybase.Free;
  mybase := nil;
  mybase1.Free;
  mybase1 := nil;
  mybase2.Free;
  mybase2 := nil;
  //temQuery1.Free;
  //temQuery1 := nil;
  mylist.Free;
  mylist := nil;
end;
end.
[解决办法]
网络的问题吧
[解决办法]
你的定时器里没有看到刷新数据的语句。如:mybase.requery;
//只有这个判断语句
if mybase.RecordCount('TB_SendMessage','isSent','0') > 0 then

[解决办法]
没有看到你的表mybase的SQL语句及刷新语句

正常的情况下:
mybase.sql:='select * from tel';
mybase.open;
在定义器中应该执行一下

mybase.requery();//重新从服务器读取数据,否则你表中的数据一起是你第一次打开时的数据。
if mybase.recor............

热点排行