FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Si Casimiro, Lo he solucionado, tanto el codigo propuesto por Chris, como el de pacopenin, me han funcionado, pero he optado por la Funcion
Código:
QuotedStr(', ');
__________________
Adrián Murúa. |
#2
|
|||
|
|||
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 |
#3
|
|||
|
|||
...Bueno, salí del paso usando parámetros:
SQLQuery1.SQL.Clear; SQLQuery1.SQL.Append('delete from genericos where id_equipo = :id_equipo'); SQLQuery1.Params.Clear; SQLQuery1.Params.CreateParam(ftString,'id_equipo',ptUnknown); SQLQuery1.ParamByName('id_equipo').AsString:= frListTB1.dsListTB.DataSet.FieldByName('id_equipo').AsString; SQLQuery1.ExecSQL(); pero personalmente, la otra forma me acomodaba más. Si alguien sabe como hacerlo, se agradece la información. |
#4
|
||||
|
||||
Bueno, yo eso lo resumiría un poco:
Debe funcionarte de la otra forma, copia aquí el código exacto que estás usando para que le echemos un vistazo. |
#5
|
|||
|
|||
Como soy porfiado, seguí con el tema, lo curioso es que este código si funciona correctamente en otro unit:
SQLQuery1.SQL.Append('select sucursal from sucursales where codigo_sucursal = ''' + sCodigoSucursal + ''''); donde sCodigoSucursal es un parámetro de entrada de tipo string a una función que contiene dicha línea. Para probar, en el codigo anterior (donde no funciona) pase el valor del campo del Dataset a una variable string "s" y reemplacé en el SQL.Append: s:= ClientDataSet1.FieldByName('id_equipo').AsString; SQLQuery1.SQL.Append('delete from genericos where id_equipo = ''' + s + ''''); pero ocurre el mismo problema. Estoy confundido. |
#6
|
||||
|
||||
¿Pero el problema es que te sale algún error o que no borra el registro?
Si es un error: ¿qué error es? Por cierto, recuerda poner el código entre etiquetas, ejemplo: |
#7
|
|||
|
|||
Señores,
debo decirlo... estoy avergonzado. Después que la pantalla de mi note se puso con rallitas de colores y se quedó pegado, tuve que resetear todo, y con ello se reseteo mi cerebro también. Parece ser que el error era otro, inicialmente de sintaxis en la consulta, y buscando y buscando encontré extraño el tema de las doble comillas, y me quedé pegado ahí, no se... creo que me estoy volviendo viejo, o será falta de sexo. Casimiro, gracias por la molestia en responder. Al menos aprendí a colocar los códigos en forma apropiada. Un saludo ¡Viva Delphi! |
#8
|
||||
|
||||
A todos se nos "cuelga" el cerebro de vez en cuando
Aunque siempre está bien decir cómo se solucionó, cuál era realmente el problema, así nos quedamos tranquilos |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Error con " en sentencia sql | Besto | SQL | 4 | 05-01-2008 19:57:26 |
Duda en sentencia de firebird | vivamotos | Firebird e Interbase | 6 | 10-09-2007 11:17:18 |
Error con sentencia SQL | Coco_jac | SQL | 7 | 28-11-2005 21:00:52 |
error de sentencia if , else | Epunamun | Conexión con bases de datos | 8 | 29-07-2005 13:23:24 |
sentencia sql echa abajo firebird | CarlosN | Firebird e Interbase | 4 | 06-04-2004 00:11:29 |
|