Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

problema con una tabla .dbf
Ir a página Anterior  1, 2
 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Bases de Datos
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

¿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
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

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... Sad

Si tienen alguna respuesta, por favor haganmela saber, que lo necesito...

GRACIAS!!!!
_________________
__________________________
C++ RULZ FO' EVA'
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

entonces nadie sabe como???... bueno esperare una respuesta pronta...

GRACIAS!!!
_________________
__________________________
C++ RULZ FO' EVA'
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado Enviar email
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.