Entonces "temp" no es un STRING ni un ANSISTRING, sino un PCHAR, ¿me equivoco? Si es así, ahí está el problema, ya que no se pueden concatenar PCHAR así como así. Si no recuerdo mal, lo siguiente debería funcionar:
Código Delphi
[-]'lower(xdoc) like "% '+ANSISTRING (temp)+' %"'
O, en el peor de los casos:
Código Delphi
[-]
VAR
temp2: ANSISTRING;
(...)
temp2 := temp;
(...)
'lower(xdoc) like "% '+temp2+' %"'
Si no es el caso, entonces pon el método completo a ver si el problema está en otro lado.