Ver Mensaje Individual
  #20  
Antiguo 26-03-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Hola,

Algunas cosas que he observado:
  • El orden en que GetFieldNames regresa los campos no necesariamente coincide con el orden natural en Fields. Por tanto, no se puede tomar tal cual el índice del combo de campos como había propuesto inicialmente. En su lugar puede hacerse:

    Código Delphi [-]
    var
      FieldName: String;
      Field: TField;
      Filter: String;
    
    begin
      FieldName := cboFieldNames.Text; // tomo el nombre del campo
      Field := AdoTable.Fields.FieldByName(FieldName); // buscamos el campo por nombre
    
      case Field.Datatype of
        ..
      end;
  • Al menos en mi caso, el tipo de datos que regresa Access para un campo Texto es ftWideString y no ftString, así que hay que considerar esto en el case:

    Código Delphi [-]
      case Field.Datatype of
        ftString, ftWideString: ....
      end;
  • Luego de algunas pruebas llego al conclusión de que el #$%&@ Access (¿o será el ADO?) no acepta el '=' en la comparación de cadenas con comodín *. Debe ser como decía Caral desde un principio: like.

// Saludos
Responder Con Cita