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 

(Tablas ADO)Ayuda con la funcion LookUp para Busqueda de reg

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: (Tablas ADO)Ayuda con la funcion LookUp para Busqueda de reg Responder citando

Hola.

Mi problema es que cuando utilizo la funcion LookUp de la siguiente manera:

Variant Clave = (Variant) ModuloDatos->TablaTrabajaEn->FieldByName("codigofarmaceutico")->Value;
Variant Resultado;
Resultado = ModuloDatos->TablaTrabajaEn->Lookup("codigofarmaceutico",Clave,"horario");
ShowMessage(Resultado.Type());
ShowMessage(Resultado.ArrayDimCount());
ShowMessage(Resultado);

Cuando hay una busqueda por clave y el resultado que busco es solo 1 campo, no hay problema.

El problema esta cuando la funcion me tendria que devolver varios campos, y solo me aparece 1.
Creo que el problema esta en la declaracion de la variable resultao, pero no se como solucionarlo

A ver si alguien me aclara un poco lo que pasa
Volver arriba
Mensaje    Asunto: Responder citando

Hola Spawn:

No dices que error te da, eso aclararía bastante lo que ocurre. Aunque supongo que el error que te da cuando hay mas de un resultado es que no puede convertir ese Array Variant a String, cosa que si hace por defecto cuando el resultado es solo uno.

Prueba cambiando la última línea por:

Código:
    if (Resultado.IsArray())
    {
        for (int i=0; i<=Resultado.ArrayDimCount(); i++)
            ShowMessage(Resultado.GetElement(i));
    }
    else
        ShowMessage(Resultado);


Saludos:
_Leo
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Gracias.
Mensaje de error no me da ninguno.
Te explico mejor el problema.
lo que quiero hacer es añadir trabajadores a una tabla de la base de datos. Entonces tengo que comprobar si el trabajador que voy a insertar
esta libre. Entonces quiero extraer de la tabla, codos los horarios en los que trabaja el elemento en cuestion. El problema que tengo, es que LookUp solo me devuelve un campo de un registro, cuando me deveria de devolver todos los horarios en los que esta trabajando el trabajador en cuestion.

Siempre me devuelve el tipo 8, que corresponde a una OleStr y ademas de dimension 0.

Gracias de todas formas Leo.
Volver arriba
Mensaje    Asunto: Responder citando

Bueno, creo que ya se cual es el problema. jejeje
Habia interpretado mal la funcion LookUp()

Esta devuelve varios campos, pero siempre del mismo registro
No de varios registros que era lo que queria.
Enfin, tendre que probar con una consulta a ver que pasa.

O si alguien conoce otra manera estoy abierto a todo tipo de sugerencias.
Volver arriba
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.