Hola,
Creo que debes ser más explícito en la exposición de tu duda. Debería ser indistinto si pones
Código Delphi
[-]
CObras.SQL.Text:='Select obras.cod_obra,obras.descripcion from obras,clientes where obras.cod_cliente = 3';
que si pones
Código Delphi
[-]
CObras.SQL.Text:='Select obras.cod_obra,obras.descripcion from obras,clientes where obras.cod_cliente = ' + DBEdit13.Text;
ya que
ambas partes del operador
+ son strings. Si obtienes una incompatibilidad de tipos puede deberse a que el contenido del DBEdit no representa un número; ¿has verificado eso?
// Saludos