Código SQL
[-]UPDATE SERVICIO
SET
ACTIVO=:"False"
WHERE CODIGO=:OLD_CODIGO
Sobran los dos puntos delante de "False", y lo mismo en los demás SQLs.
Cuando pones dos puntos antes de algo en un SQL, estás diciendo que eso es un parámetro. Hay casos especiales con el nombre del parámetro (lo que sigue a los dos puntos:
- Si es el nombre exacto de un campo, se sustituye por el DBEdit que tenga asociado.
- Si al nombre del campo le precede NEW_ o quizás OLD_ se corresponde al valor nuevo del DBEdit o al valor antes de actualizarse respectivamente.
Además creo que debe usarse las comillas simples en lugar de dobles... no estoy seguro.
En cuanto a lo segundo:
Código SQL
[-]select distinct NombreCiudad from CIUDAD
WHERE ID = ID
Saludos