Buenas Tengo una función la cual me hace el envio de sms a travez de un gateway, esta funcion lo hace correctamente, para enviar masivos hago la consulta sql y la cargo en un array y luego hay un ciclo recorriendo el array pro a veces son 1000 registros y tarda mucho y a veces me da un error,el gateway me permite concatenar numeros con ; hasta 500 y alli hace una sola petición pos miestras que como lo hago hace 1000 peticiones, como podre hacer para concatenar y eliminar el ultimo numero el punto y coma que le queda al final este es el codigo.
Código Delphi
[-]function enviarSMS (phone,mensaje : string) : string;
var
http: TIdHttp;
params: TStrings;
respuesta: string;
begin
http := TIdHTTP.Create(nil);
params := TStringList.Create;
begin
params.Add('usuario=miusuario');
params.Add('clave=AprilApril1979');
params.Add('telefonos='+phone);
params.Add('texto='+mensaje);
respuesta := http.Post('http://www.enlinea-ve.com/webservices/' + 'SendSms', params);
end;
params.Free;
http.Free;
end;
el array esta creado en la unidad
contactos: array of string;
y llamo la funcion asi
Código Delphi
[-]with datos.sqcontactos do
begin
Close;
SQL.Text:= 'SELECT * FROM vcontactos WHERE vcontactos.miem_clasificacion =: miem_clasificacion';
ParamByName('miem_clasificacion').AsString:=cbbclasificacion.Text;
Open;
while not Eof do
begin
SetLength(contactos, Length(contactos)+1);
contactos[High(contactos)] := FieldByName('celular').AsString;
Next;
end;
end;
try
for i:= Low(contactos) to High(contactos) do
begin
enviarSMS((Format('%s', [contactos[i]])),mmomensaje.Text);
end;
finally
contactos:=nil;
lst1.Clear;
mmomensaje.Clear;
MessageDlg('Proceso de Envío de SMS Concluido Exitosmente', mtCustom, [mbOK], 0);
end;
Lo Otro es que como ven solo paso el numero al array quisiera ver si es posible pasarle numero y nombre a un array para personalizar el mensaje de texto cuando sea necesario.
Gracias de Antemano