La Web del Programador: Comunidad de Programadores
 
    Pregunta:  48667 - PROBLEMA CON JET 4.0 DATABASE ENGINE DE DELPHI
Autor:  Adrian Angeles
!No puedo utilizar la funcion REPLACE para una base de Access!
Espero me puedan ayudar.

Tengo acceso a una base de datos creada en Access mediante ADO,utilizando el MS Jet 4.0,utilizo los componentes Ado conecction, Ado Dataset ,Ado Data source y un dbgrid para mostrar los resultados.
Las consultas las escribo en la propiedad commandtext del componente Ado dataset. La consulta que deseo ejecutar reemplaza los numeros 10 y 13 de una cadena por un espacio en blanco,la consulta (de ejemplo) funciona correctamente en Access y es la siguiente:

Select Replace('Adrian13','13',' ')

pero (A qui viene el error)al utilizar la funcion REPLACE,logicamente ya en la propiedad commandtext del componente ado dataset de Delphi, y trato de visualizar el resultado en el grid, activando el componente datset, aparece un error que dice asi:

Error:Undefined function 'REPLACE' in expression.

Supongo que el motor de base de datos no reconoce esta funcion o algo asi, quisiera saber como puedo hacerle para que me acepte esta funcion o de lo contrario hayar una equivalencia para realizar este reemplazo.
Gracias de antemano.

  Respuesta:  Fernando Gomez
Efectivamente la palabra REPLACE no la reconoce el Motor de Base de Datos recuerda que para acceder a los componentes ADO las instrucciones son analizadas por la ingenieria del Motor de Borland (BDE), lo que puedes hacer es usar una instrucción SQL más simple o realiza un procedure en Access que haga tu replace con los argumentos variables y solo ejecuta el procedimiento desde Delphi con los parametros.