Ver Mensaje Individual
  #1  
Antiguo 15-06-2013
nefore nefore is offline
Miembro
NULL
 
Registrado: jun 2013
Posts: 25
Reputación: 0
nefore Va por buen camino
Consulta con ADOTABLE

Hola, estoy trabajando con una BD de Access 2007 en Delphi 7. Necesito una funcion busca, la cual me devuelva verdadero si encuentra un determinado valor. Los criterios de busqueda son por Codigo, DNI, y por Nombre.
El codigo es el siguiente:

Código:
type
    Tclasepropietario = class (Tclasepersona)
    codigo_titular: Integer;
    sexo: string;
    fecha_modificacion: TDate;
    fecha_desde: TDate;

    Procedure grabardatos;
    function busqueda (dato:string;opcion:Integer):Boolean;
end;

Implementation

function Tclasepropietario.busqueda(dato: string; opcion: Integer): Boolean;
begin
  ADOTable1.Filtered := True;
  case opcion of

  1: begin
      ADOTable1.Filter:= 'CODIGO_TITULAR LIKE '''+'%'+dato+'%''';
       if (ADOTable1.RecordCount > 0)
        then
          begin
            Result:=True;
          end
        else;
         begin
            Result:=False;
          end;
     end;
  2: begin
      ADOTable1.Filter:='DNI LIKE '+dato+'';
      if (ADOTable1.RecordCount > 0)
        then
          begin
            Result:=True;
          end
        else;
         begin
            Result:=False;
          end;
      end;
  3: begin
      ADOTable1.Filter:='APELLIDO_NOMBRES LIKE '''+dato+'*''';
      if (ADOTable1.RecordCount > 0)
        then
          begin
            busqueda:=True;
          end
        else;
         begin
            busqueda:=False;
          end;
      end;
  end;
end;
En donde dato seria por ejemplo un edit, el cual posee segun lo que vaya a buscar, y opcion seria un "case" que manejo internamente para seleccionar que tipo de busqueda quiero realizar. Pues bien, a todo esto mi problema es que, en el caso del DNI y del CODIGO, en la tabla estan cargados como numeros y aca el parametro dato es string, y cuando por ejemplo realizo un alta de Propietarios necesito saber si el DNI ingresado ya esta cargado o no, pero al momento de llamar a la funcion me salta un error de "No se pudo abrir el filtro" mi duda es ¿existe alguna forma de que la consulta sql me convierta a numero el string "dato" y como seria?
Responder Con Cita