FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
duda de Update usando label.caption
Buena noche no logro congeniar con esta formula:
Quiere hacer un Update en la base de dato SQL de algunos campo: Código:
begin ADOQueryUpdate.SQL.Clear; ADOQueryUpdate.SQL.Add( 'UPDATE Tiket SET' ); ADOQueryUpdate.SQL.Add( 'Estatus = 'OLD'); ADOQueryUpdate.SQL.Add(' WHERE Item = ' +Trim(Label3.Caption)); ADOQueryUpdate.ExecSQL; //ADOQueryUpdate.Refresh; end; En el label3 tengo el numero de registro dentro de la base de datos llamado ITEM, esta imformacion es traida por otra consulta SQL la cual Funciona sin ningun problema. Lo que pretendo hacer es hacer un UPDATE de la tabla TIKET donde le cambio el valor que tiene el campo ESTATUS a 'OLD' especificamente del registro contenido dentro de Label3.caption, Claro esta que tebo modificar otros campos tambien con la misma condicion todos contenidos en los label.caption. pero ahora queria probar con uno solo y si funcionaba le agtregaba lo demas. Al momento de ejecutarlo me da un error que dice que no consigue el campo OLD. Aqui donde digo yo, 'los misterios del SQL son infinito'..... |
#2
|
||||
|
||||
Hola a todos,
Si no me equivoco, lo que ocurre es que las comillas no están bien utilizadas, al menos en esta parte:
De hecho... no sé cómo te compila eso... pero en fin, sea como sea, creo que al menos esa parte de la consulta debería quedar así:
... puesto que el error se refiere a que se está usando "OLD" literalmente, como si fuese el nombre de un "campo", y, por eso no encuentra ese "campo". En la posible solución "OLD" se encierra entre comillas, de modo que ya no se trata de un "campo", sino del valor que le quieres dar al campo "Estatus". Investiga en todo caso sobre cómo "parametrizar" consultas SQL en Delphi, puesto que considero que se evitan problemas de este tipo y se obtienen mejores garantías de que las consultas van a funcionar y además las propias consultas quedan "más elegantes". |
#3
|
||||
|
||||
Comillas.
Y de paso parametriza, que siempre es buena idea:
|
#4
|
||||
|
||||
Hola a todos,
Cita:
|
#5
|
|||
|
|||
Cita:
Aun no me rindo, pero aun tampoco tengo la solucion colocando el codigo tal cual tu mencionaste me da un erro que lo voy a adjuntar Código:
begin Close; ADOQueryUpdate.SQL.Clear; ADOQueryUpdate.SQL.Add( 'UPDATE Tiket SET'); ADOQueryUpdate.SQL.Add( 'Estatus = "OLD" '); ADOQueryUpdate.SQL.Add( 'Estatus = ' +QuotedStr('OLD')); ADOQueryUpdate.SQL.Add(' WHERE Item =:valor'); ADOQueryUpdate.Parameters.ParamByName('Valor').Value := StrToInt(Label3.Caption); ADOQueryUpdate.ExecSQL; end; yo no temg ningún campo o resultado que se llame 'valor', por lo que puedo asumir que este 'valor' sea una constante que abajo se le esta pasando el valor contenido en el Label3.caption, y de ser asi en el futuro tengo que hacer lo mismo con cada campo a la cual le voy a pasar el valor de un label? Yo no se y quiero entender como una instrucion tan simple el SQL donde solo quiero cambiar el valor que esta en el 2 y colocarle un valor contenido en un label se ha convertido en un problema Última edición por giantonti1801 fecha: 29-03-2023 a las 21:43:36. |
#6
|
||||
|
||||
Puse dos opciones para la misma linea, jeje, no tienes que usar las dos, sino la que prefieras: con comillas o con QuotedStr (que es la que a mi me gusta más).
Por eso te da error, piensa que son dos campos y espera una coma en medio. |
#7
|
|||
|
|||
Cita:
Si puedo entender eso pero a cual te refiere, talvez seria de ayuda si escribiera el codigo tal cual como deberia ir. Muchas gracias por tu ayuda |
#8
|
|||
|
|||
Cita:
Para ayudar a otros foreros que tengan el mismo problema el codigo quedo Asi. |
#9
|
|||
|
|||
Cita:
|
#10
|
||||
|
||||
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#12
|
|||
|
|||
Cita:
En mi opinión y por claridad, los parametros deberian tener el mismo nombre de los campos a actualizar. Por supuesto eso queda a criterio y gusto del colega...
Saludos cordiales |
#13
|
|||
|
|||
Cita:
|
#14
|
||||
|
||||
Cita:
No estaría de más que le echaras un vistazo a este libro, te abrirá los ojos.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#15
|
|||
|
|||
Cita:
Ahora me esta dando otro error no logro identificarlo
NOTA: Error ' Incorrect Syntax near the 'WHERE' Última edición por giantonti1801 fecha: 29-03-2023 a las 21:43:36. |
#16
|
|||
|
|||
Según el siguiente ejemplo que usted indicó...
Item= Es de tipo STRING Y lo estas convirtiendo a entero...
Lo que se traduce en una instrucción como la que sigue...
Ese debe ser el origen del error Verifique los tipos de datos...como mencione antes... Saludos cordiales |
#17
|
|||
|
|||
Cita:
Es autonumerico pero lo que debo hacer es solo leerlo pero entonces el problema puede ser que venga de aqui ya que es este punto yo le estoy pasando el valor ITEM para luego leerlo [/delphi] ADOQueryUpdate.SQL.Add( 'WHERE Item =:Item,'); ADOQueryUpdate.Parameters.ParamByName('Item').Value := StrToInt(Label3.Caption); [/delphi] |
#18
|
|||
|
|||
Cita:
Resulta que me esta dando error porque como es el primer procedimiento aun el Label3.caption esta vacio por ellos me da este error debo colocar un IF pero no se donde poderlo colocar para que me funciones, es decir si el laber3.caption esta vacio que solamente corra la primera instrucion
de lo contrario que la recorra toda:
Última edición por dec fecha: 04-11-2022 a las 08:40:21. Razón: Edición etiquetas DELPHI |
#19
|
||||
|
||||
Aquí te sobran comas:
|
#20
|
||||
|
||||
Creo que ya es momento de que le eches un vistazo a nuestra guía de estilo, gracias.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Cambiar el caption de un Label(LinkLabel, etc) en tiempo de ejecución | Missael | Delphi para la web | 2 | 20-09-2018 00:14:24 |
label.caption en 2 renglones | ingel | Varios | 5 | 17-04-2018 00:13:32 |
No cambia caption el label | giulichajari | Varios | 2 | 07-07-2015 06:08:29 |
Caption de Label en varias filas | Novatin | C++ Builder | 6 | 03-07-2013 06:24:52 |
Pierdo datos de memo.text a label.caption | jgarcias2 | OOP | 7 | 18-04-2011 20:27:45 |
|