Ver Mensaje Individual
  #1  
Antiguo 06-10-2011
pape19 pape19 is offline
Miembro
 
Registrado: jul 2010
Posts: 96
Reputación: 14
pape19 Va por buen camino
Problema de tipos con Query

Soy bastante nuevo en Delphi, y de a poco me voy acomodando con las funciones que ofrece. Estoy desarrollando una pequeña aplicacion de control de inventarios, y para hacer una consulta, necesito de una Query. Como nunca hice una en Delphi, me parece que algo estoy haciendo mal.

Yo tengo una tabla general, que contiene elementos, cada uno identificado con un codigo de elemento.
En otra tabla, en memoria, tengo guardados unos Codigo de elemento, que son los que necesito que queden en la tabla general.

Es decir...TablaGeneral: Cod_Elemento...15; 21; 25; 26; 28 - MemoryTable: Cod_Elemento...21; 25

Lo que tengo que lograr es filtrar la tabla general de manera que solo queden el registro con cod 21 y 25; o hacer una consulta que devuelva solo esos registros. En tabla general, cada registro tiene varios campos, que obviamente tienen que acompañar al Cod_Elemento en la consulta.

Como les decía, pensé en una Query, y mi código es el siguiente...

En la Unit del Form:

Código Delphi [-]
//Con este ciclo pongo todos los ID de la tabla en mem. en un string. Ej1: 20, 24, 27

    MemoryTable1.First;
    cadena:=inttostr(MemoryTable1Cod_Elemento.value);
    MemoryTable1.next;
    while not MemoryTable1.eof do
      Begin
        cadena:=cadena + ', ' + inttostr(MemoryTable1Cod_Elemento.value);
        MemoryTable1.Next
      End;

 //con lo que sigue, paso como parámetro cadena, que quedaría como el Ej1.
    If camposllenos = 3 then
      Begin
        Query1.ParamByName('PARAMETRO').AsString:= cadena;
        Query1.Open;
      End;

En la query:

Código SQL [-]
SELECT * FROM General
WHERE General.Cod_Elemento IN
(:PARAMETRO)

Y en las propiedades del parámetro, tengo que...

Código:
DataType: ftString
ParamType: ptUnknown
Value Type: String
Cuando ejecuto, al llegar al Open de la Query, me sale este error de tipos "Type Mismatch in expression".

Que estoy haciendo mal? Que solucion me pueden dar? GRACIAS!

Última edición por Casimiro Notevi fecha: 06-10-2011 a las 13:47:57. Razón: Poner etiquetas [delphi], [sql] y [code]
Responder Con Cita