El SQL presupone que es un entero lo que hay en DBEdit, sin embargo, en compilación todo está bien ya que estas uniendo cadenas de texto.
Código Delphi
[-]
SentenciaSql:=' SELECT * FROM PRESUPUESTOS WHERE CODIGO_PRESUPUESTO='+QuotedStr(FrmPresupuestos.DBEditCodigo.Text);
Como quieres un texto, he usado QuotedStr para que al final te quede algo así:
Código SQL
[-]
SELECT * FROM PRESUPUESTOS WHERE CODIGO_PRESUPUESTO= ' contenido_del_dbEdit'
Las comillas es lo que no se ponían en tu asignación.
Saludos