Hola a todos... bueno pues resulta que era una excepcion que no debia saltar...
pues como todos sabemos esta es la estructura del locate...
Código Delphi
[-]
Tabla.Locate(Cadena_Con_llaves, VarArrayOf([Arreglo de los valores de las respectivas llaves de la primera cadena]), []);
por ejemplo para poderme explicar bien...
Código Delphi
[-]
Tabla.Locate('key1;key2', VarArrayOf(['A','B']),[]);
pero cuando tabla tiene un solo valor ud hace esto....
Código Delphi
[-]
Tabla.Locate('key1', 'A',[]);
jejejeje eso era lo que me pasaba... es un variant pero para una sola llave es un string en la vida real por lo tanto cuando la tabla tiene una sola llave esta linea del codigo anterior sobra...
Código Delphi
[-]
arr:=VarArrayCreate([0, DMDatos.UtilMD.IndexFieldCount-1], varVariant);
y por eso era que se lanzaba esta excepcion jejejejeje...
bueno muchas gracias sin mas
Mystery