FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
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; |
#2
|
||||
|
||||
Por lo que entiendo:
- con BUSCARMODELO posicionas una tabla en un registro - con ENCONTROMODELO haces algo con los datos de ese registro. Supongo que la solución sería que BUSCARMODELO te devolviera los datos que vas a uar en ENCONTROMODELO y se los pasaras. (n, grupo y modelo deberán ser variable globales al thread) Quizás también agregaría un tGrupo.Close después de la consulta en BUSCARMODELO, si no es necesario que quede abierto.
Última edición por duilioisola fecha: 05-10-2007 a las 14:40:32. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
problema de logica con filter y ciclos | vroa74 | Conexión con bases de datos | 2 | 07-03-2007 22:46:47 |
group by y problema de logica | reina | SQL | 3 | 23-05-2006 15:08:45 |
Problema de logica haciendo comparaciones en SQL | CHiCoLiTa | SQL | 4 | 04-03-2005 01:56:32 |
Programación Lógica (Metodo de Resolución) | Luis Abraham | Varios | 4 | 27-10-2004 15:18:37 |
problema base de datos | migueilichenco | Conexión con bases de datos | 9 | 21-05-2003 22:19:47 |
|