PDA

View Full Version : سوال در مورد کد ارسال اس ام اس



navidwhacker
چهارشنبه 11 فروردین 1389, 12:21 عصر
مشکلم اینه که وقتی تو حلقه میندازم هر اس ام اس رو چند بار میفرسته فکر میکنم مشکل از برنامه نویسی منه.
ضمنا همه اس ام اس هارو به این شکل ارسال نمیکنه.بضی وقتا بعضی اس ام اس هارو اینطور میفرسته.میتونه قطعه کدش رو برام بزاری؟

procedure TfrmMain.N122Click(Sender: TObject);
begin
if chek_tm122=0 then
begin
ADO_122.ConnectionString:='Provider=SQLOLEDB.1;Int egrated Security=SSPI;Persist Security Info=False;Initial Catalog='+name_db_122.text+'';
ADO_122.connected:=true;
Tm122.Enabled:= true;
N122.Caption:='ÞØÚ ÇÑÊÈÇØ ÈÇ ÓíÓÊã 122';
Tm122.Interval := 8 * 1000;
chek_tm122 :=1;
end
else
begin
chek_tm122 :=0;
Tm122.Enabled:= false;
N122.Caption:='ÝÚÇá ÓÇÒí ÇÑÊÈÇØ ÈÇ ÓíÓÊã 122';
end;
end;

procedure TfrmMain.Tm122Timer(Sender: TObject);
var
i: Integer;
i_k : Integer;
shenase : Integer ;
//tel: String;
// pm : Word;
// che_fn : Boolean;
// dd : Date;
blnDeliveryReport,blnAlert: WordBool;
strDest,strURL:WideString;
begin
shenase := 0;
///////////////////
ADOQ_122.Close;
ADOQ_122.SQL.Clear;
ADOQ_122.SQL.Add ('Select * FROM temp_sms where flag_send=''0'' order by id asc ');
ADOQ_122.open;
ADOQ_122.first;
// objSMS.SendMessageCallback()
// frmMain.objSMS.SendMessageCallback('qqq','09124160 097',1,0,'');
//blnDeliveryReport := chkDeliveryReport.Checked;
//blnAlert := chkAlert.Checked;
// new(DBObject);
objSMS.ValidityPeriod := edtValidityPeriod.Text + MidStr(cboValidity.Text, 1, 1);
frmMain.objSMS.CharEncoding := 16;
blnDeliveryReport := chkDeliveryReport.Checked;
blnAlert := chkAlert.Checked;
i:=1;
//objSMS.SendMessageCallback(


while not ADOQ_122.Eof do
begin
// sobjSMS.SendMessage(ADOQ_122.fieldbyname('pm').ass tring,ADOQ_122.fieldbyname('tel').asstring,blnDeli veryReport,blnAlert);
sms_id[i]:=ADOQ_122.fieldbyname('id').asstring;
sms_tel[i]:=ADOQ_122.fieldbyname('tel').asstring;
sms_pm[i]:=ADOQ_122.fieldbyname('pm').asstring;
i := i+1;
ADOQ_122.Next;
end;

// send_sms(ADOQ_122.fieldbyname('tel').asstring, ADOQ_122.fieldbyname('pm').asstring);
//ShowMessage(BoolToStr(blnDeliveryReport));
//ShowMessage(BoolToStr(blnAlert));
//if i =1 then
// begin
// ShowMessage(ADOQ_122.fieldbyname('id').asstring);
// end;
//objSMS.SendMessage(ADOQ_122.fieldbyname('pm').asst ring,ADOQ_122.fieldbyname('tel').asstring,blnDeliv eryReport,blnAlert);
// objSMS.SendMessageCallback(ADOQ_122.fieldbyname('p m').asstring,ADOQ_122.fieldbyname('tel').asstring, blnDeliveryReport,blnAlert,i,dd)
//Sleep(1500);

// objSMS.CleanupInstance
// ShowMessage(IntToStr(i));
//sms_send[i_a]:= i;
//sms_send[i_b]:= ADOQ_122.fieldbyname('tel').asstring;

//sms_send[i_c]:= ADOQ_122.fieldbyname('pm').asstring;
// List : array [0..10] of Double; {8 * 11 = 88 Bytes
//messagebeep(MB_ICONQuestion);
// ADOQ_122.Next;
{
ShowMessage(IntToStr(frmMain.objSMS.ErrorNo));
If frmMain.objSMS.ErrorNo = 0 Then
begin
ShowMessage('ÇÑÓÇá ÈÇ ãæÝÞíÊ ÇäÌÇã ÔÏ');

// ShowMessage(ADOQ_122.fieldbyname('id').asstring);
ADOQ122_update.Close;
ADOQ122_update.SQL.Clear;
ADOQ122_update.SQL.Add ('update temp_sms set flag_send=''1'' where id='+ADOQ_122.fieldbyname('id').asstring+' ');
ADOQ122_update.ExecSQL;


if i<>1 then
begin
ShowMessage(ADOQ_122.fieldbyname('id').asstring);
end;
// objSMS.SendMessage(ADOQ_122.fieldbyname('pm').asst ring,ADOQ_122.fieldbyname('tel').asstring,blnDeliv eryReport,blnAlert);
ADOQ_122.Next;
end
Else
begin
ShowMessage('ÎØÇ ÏÑ ÇÑÓÇá ÇØáÇÚÇÊ'+frmMain.objSMS.ErrorDescription);
end;
}

// ShowMessage(IntToStr(i));
// if i > 1 then
// begin

for i_k:= 1 to (i-1) do
begin
//ShowMessage(sms_tel[i_k]+sms_pm[i_k]) ;
// try
if shenase =0 then
begin
shenase := objSMS.SendMessage(sms_pm[i_k],sms_tel[i_k],blnDeliveryReport,blnAlert);
ADOQ122_update.Close;
ADOQ122_update.SQL.Clear;
ADOQ122_update.SQL.Add ('update temp_sms set flag_send=''1'' where id='+sms_id[i_k]+' ');
ADOQ122_update.ExecSQL;
end;
// except
// end;
end;
// end;

//end
//else
//ShowMessage('ÇÑÊÈÇØ ÈÇ ÈÇä˜ 122 ÈÑÞÑÇÑ äãí ÈÇÔÏ');

end;
اینم کدی که من استفاده کردم
راستی من این کد رو تو کامپوننت
{************************************************* *****************************}
{ }
{ Logiccode GSM SMS ActiveX Dll v3.3 Demo for Delphi 7 }
{ Copyright (c) 2002-2009 Logiccode Software, All rights reserved. }
{ }
{ This sample highlights usage of all properties & methods of Logiccode SMS. }
{ }
{ Note: To compile and run this project, you must Import }
{ Logiccode GSM SMS 3.3 Type Library first. This can be done by clicking "Project > Import Type Library" }
{ menu and then selecting "Logiccode GSM SMS 3.3 Type Library" from the list. }
{ Then click "Install" button and then OK/Yes buttons in subsequent dialogs. }
{ }
{ Disclaimer - The source code in this file is provided "as is", without }
{ warranty of any kind, either expressed or implied. }
{************************************************* *****************************}
استفاده کردم.
اگه یکی کمک کنه ممنون میشم.

BORHAN TEC
چهارشنبه 11 فروردین 1389, 15:27 عصر
این برنامه برای ارسال اس ام اس به چی نیاز داره؟ مثلاً یک دستگاه خاص و یا ...

Felony
چهارشنبه 11 فروردین 1389, 17:46 عصر
این برنامه برای ارسال اس ام اس به چی نیاز داره؟ مثلاً یک دستگاه خاص و یا ...
یا با یک مدم GSM و یا با یک تلفن همراه که این قابلیت رو ارائه بده .