Ver Mensaje Individual
  #4  
Antiguo 15-12-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Pues lo primero es usar ' para las cadenas en Delphi y " para las cadenas en SQL. Pero es incluso mejor usar la función QuotedStr, que si bien alarga el código, lo aclara bastante. Por ejemplo, en lugar de poner

Código Delphi [-]
'where id_especialidad = "' + txt_clave_esp.Text + '"'

poner

Código Delphi [-]
'where id_especialidad = ' + QuotedStr(txt_clave_esp.Text)

La función QuotedStr se encargará de colocar las " alrededor del texto.

Mejor aún sería usar parámetros:

Código Delphi [-]
'where id_especialidad = :EspecialidadId'

y sustituirlos al momento de lanzar la consulta:

Código Delphi [-]
ZQ_Materias.ParamByName('EspecialidadId').AsString := txt_clave_esp.Text;

Si no puedes usar parámetros, por ejemplo porque no sepas de antemano cuantas líneas vasa insertar, podrías, por lo menos usar Format:

Código Delphi [-]
Format('where id_especialidad = %s', [QuotedStr(txt_clave_esp.Text)]);

En fin, que hay varias opciones, pero lo esencial es no intentar construir la cadena de un sólo golpe porque puede uno volverse loco.

// Saludos
Responder Con Cita