bResult := false;
XML1 := NewXMLDocument;
writelog(Socket.RemoteAddress);
if not bLocalIP(Socket.RemoteAddress) then
Exit;
sPhp:=GetLinkInfo(true);
sRet := Socket.ReceiveText;
writelog(sRet);
if sRet = 'F8AA27A2140B3398038C1C7E1BCF235E' then
begin Socket.SendText('12345' + #13#10);
writelog('ceshi');
smsData := new(PTContent);
tQuLst := TQueuelist.Create();
TTimertask := TSmsThread.Create(true);
try
AdoQury := TAdoQuery.Create(nil);
AdoQury.Connection := TAdo;
AdoQury.SQL.Text := 'SELECT * FROM ch_sms WHERE state=0';
writelog(adoqury.SQL.Text);
if not AdoQury.Active then
AdoQury.Open //这边就不执行了
else
AdoQury.ExecSQL;
writelog('ceshi1');
AdoQury.First;
while not AdoQury.Eof do
begin
smsData.tel := AdoQury.FieldValues['tel'];
smsData.content := AdoQury.FieldValues['content'];
writelog(smsData.tel+'***************'+smsData.content);
tQuLst.Push(smsData);
AdoQury.Next;
end;
if tQuLst.Count > 0 then
begin
if TTimertask = nil then
writelog('工作线程创建失败!')
else
begin
with TTimertask.Create(true) do
begin
writelog('启动线程成功!');
ResumeThread(TTimertask.Handle);
end;
end;
end;
finally
FreeAndNil(AdoQury);
end;
{ sql := 'SELECT * FROM ch_sms WHERE state=0';
SendMess(sql);
writelog('发送短信成功!'); }
end;
end;我在用定时查询的时候可以,用实时查询,就是serversocket的clientread属性来查询的时候就不行了,各位大侠帮个忙咯
XML1 := NewXMLDocument;
writelog(Socket.RemoteAddress);
if not bLocalIP(Socket.RemoteAddress) then
Exit;
sPhp:=GetLinkInfo(true);
sRet := Socket.ReceiveText;
writelog(sRet);
if sRet = 'F8AA27A2140B3398038C1C7E1BCF235E' then
begin Socket.SendText('12345' + #13#10);
writelog('ceshi');
smsData := new(PTContent);
tQuLst := TQueuelist.Create();
TTimertask := TSmsThread.Create(true);
try
AdoQury := TAdoQuery.Create(nil);
AdoQury.Connection := TAdo;
AdoQury.SQL.Text := 'SELECT * FROM ch_sms WHERE state=0';
writelog(adoqury.SQL.Text);
if not AdoQury.Active then
AdoQury.Open //这边就不执行了
else
AdoQury.ExecSQL;
writelog('ceshi1');
AdoQury.First;
while not AdoQury.Eof do
begin
smsData.tel := AdoQury.FieldValues['tel'];
smsData.content := AdoQury.FieldValues['content'];
writelog(smsData.tel+'***************'+smsData.content);
tQuLst.Push(smsData);
AdoQury.Next;
end;
if tQuLst.Count > 0 then
begin
if TTimertask = nil then
writelog('工作线程创建失败!')
else
begin
with TTimertask.Create(true) do
begin
writelog('启动线程成功!');
ResumeThread(TTimertask.Handle);
end;
end;
end;
finally
FreeAndNil(AdoQury);
end;
{ sql := 'SELECT * FROM ch_sms WHERE state=0';
SendMess(sql);
writelog('发送短信成功!'); }
end;
end;我在用定时查询的时候可以,用实时查询,就是serversocket的clientread属性来查询的时候就不行了,各位大侠帮个忙咯
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货