| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
pablo_emiliob Master


Registrado: 19 Sep 2005Mensajes: 211Ubicación: Barranquilla - Colombia
|
Publicado: Vie 02 May, 2008 4:00 pm Asunto: |
|
|
disculpa la molestia Angel, sera que me puedes explicar esa funcion un poco mas a fondo, porque no entiendo lo que esta dentro del FOR... _________________ __________________________
C++ RULZ FO' EVA' |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Vie 02 May, 2008 4:33 pm Asunto: |
|
|
¿A que función te refieres? ¿A la que he puesto en el mensaje? En el query que montas están un motón de parámetros; por ejemplo:
| Código: | INSERT INTO 'control.dbf' VALUES(:CONSEC, :FECHA, :IDCLIENTE, :NOMCLIENTE, :TELEFONO, :DESCRIPCIO, :SERVICIO, :GRUPO, :VALOR, :VALORGRUP, '0', :VALORPAGA) |
Con el bucle for lo que hago es ir recorriendo los parámetros de ese query. Como el TStringList lo he ido cargando con el mismo orden, el índice 0 de los parámetros coincidirá con el índice 0 de la lista; sólo me queda comprobar el tipo de datos porque como en el TStringList todo son AnsiString tendré que hacer las conversiones necesarias:
| Código: | for (int nParam = 0; nParam <q>ParamCount; nParam ++)
{
TParam *pParam = q->Params->Items[nParam];
switch (pParam->DataType)
{
case ftString:
pParam->AsString = slValor[nParam);
brek;
case ftInteger:
pParam->AsInteger = StrToInt(slValor[nItem]);
break;
case ftDate:
pParam->AsDateTime = StrToDate(slValor[nItem]);
break;
...
} |
La función que uso yo (en el mensaje está posteado el código completo de la función) se basa en que los objetos de la pantalla se llaman igual que los campos de la base de datos y coy recorriendo los campos del query buscando el que se llama igual en la pantalla. _________________ Un saludo
Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA) |
|
| Volver arriba |
|
 |
pablo_emiliob Master


Registrado: 19 Sep 2005Mensajes: 211Ubicación: Barranquilla - Colombia
|
Publicado: Mie 04 Jun, 2008 5:18 am Asunto: |
|
|
HOLA!!!
Ahora tengo un nuevo problema con una tabla DBF, la tabla esta asi:
Y estoy haciendo una consulta asi:
| Código: | Query3->Close();
Query3->SQL->Text = "SELECT * FROM 'programacion.dbf' WHERE TIPO = :TIP AND FECHA = :FEC";
Query3->ParamByName("TIP")->AsString = "no confirmado";
Query3->ParamByName("FEC")->AsDateTime = DateTimePicker1->Date;
Query3->Open(); |
pero no me arroja ningun resultado en un DBGrid que tengo... no se porque... _________________ __________________________
C++ RULZ FO' EVA' |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Mie 04 Jun, 2008 3:29 pm Asunto: |
|
|
| pablo_emiliob escribió: | | Código: | Query3->Close();
Query3->SQL->Text = "SELECT * FROM 'programacion.dbf' WHERE TIPO = :TIP AND FECHA = :FEC";
Query3->ParamByName("TIP")->AsString = "no confirmado";
Query3->ParamByName("FEC")->AsDateTime = DateTimePicker1->Date;
Query3->Open(); |
pero no me arroja ningun resultado en un DBGrid que tengo... no se porque... |
¿Qué tablas tienes asociada al DBGrid? Ten en cuenta que has de asociar el query. _________________ Un saludo
Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA) |
|
| Volver arriba |
|
 |
pablo_emiliob Master


Registrado: 19 Sep 2005Mensajes: 211Ubicación: Barranquilla - Colombia
|
Publicado: Mie 04 Jun, 2008 6:54 pm Asunto: |
|
|
Si, claro que la tengo asociada, es decir, tengo un DataSource que apunta al Query y la DBGrid apunta al DataSource... asi lo tengo... _________________ __________________________
C++ RULZ FO' EVA' |
|
| Volver arriba |
|
 |
pablo_emiliob Master


Registrado: 19 Sep 2005Mensajes: 211Ubicación: Barranquilla - Colombia
|
Publicado: Jue 05 Jun, 2008 3:48 am Asunto: |
|
|
Ahora, hice una simple consulta:
| Código: | SELECT * FROM programacion WHERE TIPO = 'no confirmado' |
y no me sale nada.
Luego hice una consulta muy general:
| Código: | SELECT * FROM programacion |
y me arrojo un resultado. Pero en el campo TIPO me arroja esto:
ese es un problema... el otro es que cuando hago una consulta con una fecha asi:
| Código: | SELECT * FROM programacion WHERE FECHA = '09/01/2008' |
no me arroja nada...
Si tienen alguna respuesta, por favor haganmela saber, que lo necesito...
GRACIAS!!!! _________________ __________________________
C++ RULZ FO' EVA' |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Jue 05 Jun, 2008 9:50 am Asunto: |
|
|
| pablo_emiliob escribió: | | Código: | Query3->Close();
Query3->SQL->Text = "SELECT * FROM 'programacion.dbf' WHERE TIPO = :TIP AND FECHA = :FEC";
Query3->ParamByName("TIP")->AsString = "no confirmado";
Query3->ParamByName("FEC")->AsDateTime = DateTimePicker1->Date;
Query3->Open(); |
|
Haz una cosa. reemplaza TIPO = por TIPO LIKE y déjalo así:
| Código: | Query3->Close();
Query3->SQL->Text = "SELECT * FROM 'programacion.dbf' WHERE TIPO LIKE :TIP AND FECHA = :FEC";
Query3->ParamByName("TIP")->AsString = "no confirmado%";
Query3->ParamByName("FEC")->AsDateTime = DateTimePicker1->Date;
Query3->Open(); |
Prueba y nos comentas. _________________ Un saludo
Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA) |
|
| Volver arriba |
|
 |
pablo_emiliob Master


Registrado: 19 Sep 2005Mensajes: 211Ubicación: Barranquilla - Colombia
|
Publicado: Vie 06 Jun, 2008 9:50 pm Asunto: |
|
|
tampoco me sale, es que el problema esta en la fecha, es decir, apenas le quito la fecha me devuelve los no confirmados, pero quiero poner que me devuelva los no confirmados bajo X fecha no me los devuelve... _________________ __________________________
C++ RULZ FO' EVA' |
|
| Volver arriba |
|
 |
pablo_emiliob Master


Registrado: 19 Sep 2005Mensajes: 211Ubicación: Barranquilla - Colombia
|
Publicado: Dom 08 Jun, 2008 4:49 am Asunto: |
|
|
entonces nadie sabe como???... bueno esperare una respuesta pronta...
GRACIAS!!! _________________ __________________________
C++ RULZ FO' EVA' |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Lun 09 Jun, 2008 7:44 am Asunto: |
|
|
| pablo_emiliob escribió: | | tampoco me sale, es que el problema esta en la fecha, es decir, apenas le quito la fecha me devuelve los no confirmados, pero quiero poner que me devuelva los no confirmados bajo X fecha no me los devuelve... |
El manejo de fechas siempre es muy latoso. Yo te sugeriría alguna prueba más; por ejemplo: elimina la fecha en la consulta:
| Código: | Query3->Close();
Query3->SQL->Text = "SELECT * FROM 'programacion.dbf' WHERE TRIM(TIPO) LIKE :TIP";
Query3->ParamByName("TIP")->AsString = "no confirmado%";
Query3->Open(); |
Si todo va bien debería sacar todos los no confirmados, al margen de la fecha. Por aquello de ir eliminando POSIBLES errores, que busque la condición en mayúsculas:
| Código: | Query3->Close();
Query3->SQL->Text = "SELECT * FROM 'programacion.dbf' WHERE UPPER(TRIM(TIPO)) LIKE :TIP";
Query3->ParamByName("TIP")->AsString = "NO CONFIRMADO%";
Query3->Open(); |
Descompón la fecha ANTES de tratarla y busca SÓLO la fecha:
| Código: | Word Day, Month, Year;
DecodeDate(DateTimePicker1->Date, Year, Month, Day);
Query3->Close();
Query3->SQL->Text = "SELECT * FROM 'programacion.dbf' WHERE FECHA = :FEC";
Query3->ParamByName("FEC")->AsDateTime = EncodeDate(Year, Month, Day);
Query3->Open(); |
Más que nada por ir tratando de eliminar posibles causas. Lo mismo estoy dando palos de ciego, pero sin ver la tabla y el código no se me ocurren más cosas. _________________ Un saludo
Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA) |
|
| Volver arriba |
|
 |
|