Ver Mensaje Individual
  #9  
Antiguo 01-04-2011
g_ferrada g_ferrada is offline
Miembro
NULL
 
Registrado: mar 2011
Posts: 13
Reputación: 0
g_ferrada Va por buen camino
Amigos
Tengo un problema con las comillas (') que no logro solucionar. Escribo la sentencia SQL en la propiedad SQL.TEXT, de la siguiente forma:

Query1.SQL.Append('delete from genericos where id_equipo = ''' + frListTB1.dsListTB.DataSet.FieldByName('id_equipo').AsString + '''');

pero Delphi insiste en colocarme las comillas dos veces y me lo deja así:

delete from genericos, where id_equipo = ''EQUIPO 100''
y me coloca dos veces las comillas.

No soy un maestro en Delphi, pero hago esto desde muchos años, y ahora he decidido comenzar a usar Delphi2010 y me encontrado con esta dificultad (entre otras). El código anterior me funciona en Delphi7.

He intentado usando chr(39), #39, QuotedStr, AnsiQuotedStr... Si usara la comilla doble el tema anda:

Query1.SQL.Append('delete from genericos where id_equipo = "' + frListTB1.dsListTB.DataSet.FieldByName('id_equipo').AsString + '"');

y queda asi:
delete from genericos, where id_equipo = "EQUIPO 100"
pero esto Firebird no me lo reconoce (el delimitador de texto es comilla simple).

Si le saco las comillas:

Query1.SQL.Append('delete from genericos where id_equipo = ' + frListTB1.dsListTB.DataSet.FieldByName('id_equipo').AsString + '');

el resultado tampoco me sirve:
delete from genericos, where id_equipo = EQUIPO 100

Lo que me falta es probar otro camino usando parámetros en la consulta, pero me figuro que también tendré que preparar cadenas de texto, y la verdad, me cuesta creer que Delphi haya caído en un error tan burdo (y que nadie más se haya dado cuenta) así que prefiero pensar que el problema soy yo.
¿Habrá que cambiar alguna opción en Delphi para que funcione como lo hacía en mi querido Delphi7?

Agradeceré ayuda, por favor.
Saludos
Responder Con Cita