Ver Mensaje Individual
  #5  
Antiguo 05-10-2007
chelox chelox is offline
Miembro
 
Registrado: sep 2006
Posts: 13
Reputación: 0
chelox Va por buen camino
aca va el código.

de anoche a hoy me parece que me di cuenta de algo...

que no puedo hacer consultas seguidas, si ya estoy usando una tabla
así que el problema es otro ahora

supongo que tendré que hacer una consulta por vez y cuando termina una, debo seguir con la otra, de esta forma puedo guardar la direccion en una variable


El sistema lo que hace, es enviar ficheros a dispositivos celulares



EL CODIGO:





procedure Tform1.procesar(s:String;n:Integer);
Begin
if (self.procesando_list.Count<strtoint(self.c_config.Items.Strings[0])) Then
Begin
if (objeto<>'') Then
Begin
self.procesando_list.Items.Add(s);
// antes enviaba siempre el mismo fichero
// enviar(s,self.c_config.Items.Strings[1] + 'objetos\' + objeto)
// ahora tiene que buscar en la base de datos segun el prefijo de la direccion, el fichero que corresponda
buscarModelo(s:String);
End;
End;
End;




procedure Tform1.buscarModelo(s:String);
var
i:Integer;
coma,servicios_dato,dato:String;
servicios: TBFBluetoothServices;
servicio: TBFBluetoothService;
prefijo: String;
Begin
servicios := EnumServices(s,true,Dongle);
servicios_dato := '';
coma := '';
for i:=0 to servicios.Count - 1 do
Begin
servicio := servicios.Service[i];
dato := coma + inttostr(i) + ':' + inttostr(servicio.Channel) + ':' + inttostr(servicio.UUID16);
servicios_dato := servicios_dato + dato;
coma := ',';
End;
prefijo := stringReplace(s,':','',[rfReplaceAll]);
prefijo := copy(prefijo,2,6);
// segun el prefijo de la direccion y los servicios pertenece a un grupo
d2.tgrupo.Close;
d2.tgrupo.SQL.Clear;
d2.tgrupo.SQL.Add('SELECT modelos.id, modelos.marca, modelos.modelo, agrupar.grupo');
d2.tgrupo.SQL.Add('FROM modelos');
d2.tgrupo.SQL.Add('INNER JOIN agrupar ON (modelos.id = agrupar.modelo)');
d2.tgrupo.SQL.Add('WHERE (modelos.prefijo = ' + '''' + prefijo + '''' + ')');
d2.tgrupo.SQL.Add('AND (modelos.servicios = ' + '''' + servicios_dato + '''' + ')');
d2.tgrupo.Open;
End;

procedure Tform1.encontroModelo(datos:TDataSet);
var
objeto2:String;
p1,largo,n, grupo, modelo, il:Integer;
s,busca:String;
Begin
n := datos.RecordCount;
if (n>0) Then
Begin
grupo := datos.fieldByName('grupo').Value;
modelo := datos.fieldByName('id').Value;
End
else
Begin
grupo := 0;
modelo := 0;
End;
// esto es porque guardo la lista de ficheros en una lista pero le pongo 1,fich.. 2,fich etc...
busca := inttostr(grupo) + ',';
il := BuscarEnLista(lista_objetos.Items,busca);
objeto2 := lista_objetos.Items.Strings[il];
largo := length(objeto2);
p1 := pos(',',objeto2);
objeto2 := copy(objeto2,p1+1,largo - p1);
// ahora debera enviar el fichero encontrado
// de donde saco la dirección???
enviar(ACALADIRECCION,self.c_config.Items.Strings[1] + 'objetos\' + objeto2)
end;



// en la unidad de las base de datos:
procedure Td2.tgrupoAfterOpen(DataSet: TDataSet);
begin
form1.encontroModelo(DataSet);
end;
Responder Con Cita