![]() |
Actualizando un Campo pasando Parametros con MyDac
:rolleyes:
Hola a todos, después de tanto andar con MyDac y MySQL empiezo poco a poco a entender este componente aunque me sigue fallando un poco mi programación :p . Vean tengo lo siguiente, Acabo de crear una tabla llamada AUTOS con los siguientes campos: Codigo,Cantidad,color y agregar Autos Codigo (txtcodigo)[Es un edit] Cantidad (DBcantidad)[Es un DBedit3] Color (DBcolor)[es un DBedit] Agregar(txtagregar)[es un Edit] Ahora lo que necesito es solamente ir incrementando mi campo CANTIDAD de acuerdo a lo que voy a ir agregando en el TXTAGREGAR. Ejemplo: Si tengo 10 autos VW y agrego 2 mas en mi TXTAGREGAR, ahora debe mostrarme 12 en DBCANTIDAD. He implementado lo siguiente: 1 MyQuery con el siguiente Código: UPDATE autos SET cantidad = :cantidad + :agregar // Pasados como parametros WHERE codigo = :codigo // Pasado como parámetro Se me hace que aqui debo implementar la clausula AS para guardar el valor de agregar, seguire analizando En mi botón: MyTable1.Edit; QueryUpdate.Close; QueryUpdate.SQL.Clear; QueryUpdate.SQL.Text:='UPDATE autos SET cantidad='(+DBedit3.Text+)+(txtagregar))' WHERE codigo="'+txtcodigo.Text+'"'; QueryUpdate.Execute; MyTable1.Post; MyTable1.Refresh; Tambien checando este codigo que implemento: SQL.Add('UPDATE autos SET cantidad = cantidad + :agregar') o SQL.Add('UPDATE autos SET cantidad = cantidad + txtagregar') Si el código de mi botón esta mal que es lo mas seguro, como puedo implementar la acción de sumar lo que tengo en DBCANTIDAD + TXTAGREGAR. Gracias. Atte. Karla :rolleyes: |
consejo, porque no usas format a veces las consultas salen más transparentes:
bueno dije a veces :D ah por cierto, en TDBEdit resulta mejor trabajar con la propiedad field que con el text |
Ok checo la sugerencia y nueva prueba
En este momento checando la sugerencia, y este codigo creado en MySQL
select SUM(cantidad) as agregar // Aqui pongo la cantidad actual de autos :o from autos where codigo=:codigo Ahora checare si lo obtenido se lo sumo a TXTAGREGAR :p Sigo haciendo pruebas |
Hola
No se me parece que algo pasa aqui: No lo he probado asi que pues dudas. Saludos |
:p Nop, de las dos sugerencias, no queda lo que deseo hacer, sigo revisando los errores
|
QueryUpdate.SQL.Text:='UPDATE productos SET stock= '+QuotedStr(DBedit3.Text)+ + +QuotedStr(txtagregar.Text)+' WHERE codigo="'+QuotedStr(txtcodigo.Text)+'"';
Duda, que me permite hacert QuoStr? Necesito entenderlo por que me marca un error: "INCOMPATIBLES TYPES: 'STRINGS' AND 'TEDIT' :confused: |
Que se supone quieres hacer aqui
Cita:
Cita:
Salud OS. |
Bueno,
Hice una prueba con tu sentencia SQL y aqui te pongo lo que paso. Primero modifique tu linea, no me compila tal como la pones Cita:
En el memo me sale esto, para cada sentencia Cita:
Salud OS. |
Analizando nuevamente la linea:
QueryUpdate.SQL.Text:='UPDATE productos SET stock= '+QuotedStr(strtoint(DBedit3.Text)+strtoint(txtagregar.Text)+' WHERE codigo="'+QuotedStr(txtcodigo.Text)+'"'; Me marca un error en: QuotedStr(txtcodigo.Text)+'"' Incompatible types: 'String' and 'Integer' Ya he checado vonviertiendolo a otro tipo, y nada :confused: Sigo analizando |
Gracias EgoStar checare tu linea :p
|
Checa el codigo que acabo de poner, yo creo que es la solución.
De todos modos lo pongo de nuevo con los objetos que estas usando.
Cita:
Salud OS. |
Ok
:p Muchas Gracias EgoStar, aqui pongo la modificacion:
QueryUpdate.Close; QueryUpdate.SQL.Clear; QueryUpdate.SQL.Text:='UPDATE productos SET stock= '+QuotedStr(inttostr(strtoint(DBedit3.Text)+strtoint(txtagregar.Text)))+' WHERE codigo='+txtcodigo2.Text; QueryUpdate.Execute; Codigo Funcionando al 100% Gracias a todos los que me orientaron. Solo una duda, no logro entender el funionamiento de QuotedStr :rolleyes: |
Hola
Muy cierto Egostar, el codigo modificado esta muy bien, bueno maestro al fin. Con respecto a QuotedStr, se usa, bueno en este caso lo use, por el desconocimiento del campo, con esto parece hacer una traduccion o similar, egostar te puede decir mas. Me alegro que allas resuelto el asunto. Saludos |
Pues solo basta con ver la ayuda de delphi.
QuotedStr Routine Returns the quoted version of a string. Unit SysUtils Syntax [delphi] function QuotedStr(const S: string): string; Description Use QuotedStr to convert the string S to a quoted string. A single quote character (') is inserted at the beginning and end of S, and each single quote character in the string is repeated. Note: When working with multi-byte character systems (MBCS), use AnsiQuotedStr instead. Salud OS. |
Gracias
Gracias por la explicacion ;)
Gracias a todos los que me orientaron a traves de este codigo ;) :D Chocolates para todos :D |
| La franja horaria es GMT +2. Ahora son las 07:16:01. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi