FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Actualizando un Campo pasando Parametros con MyDac
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 . 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 Última edición por karlaoax fecha: 27-04-2007 a las 18:51:47. |
#2
|
||||
|
||||
consejo, porque no usas format a veces las consultas salen más transparentes:
bueno dije a veces ah por cierto, en TDBEdit resulta mejor trabajar con la propiedad field que con el text
__________________
self.free; Última edición por droguerman fecha: 27-04-2007 a las 19:17:06. |
#3
|
||||
|
||||
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 from autos where codigo=:codigo Ahora checare si lo obtenido se lo sumo a TXTAGREGAR Sigo haciendo pruebas |
#4
|
||||
|
||||
Hola
No se me parece que algo pasa aqui: No lo he probado asi que pues dudas. Saludos |
#5
|
||||
|
||||
Nop, de las dos sugerencias, no queda lo que deseo hacer, sigo revisando los errores
|
#6
|
||||
|
||||
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' |
#7
|
|||
|
|||
Que se supone quieres hacer aqui
Cita:
Cita:
Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney |
#8
|
|||
|
|||
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.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney |
#9
|
||||
|
||||
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 Sigo analizando |
#10
|
||||
|
||||
Gracias EgoStar checare tu linea
|
#11
|
|||
|
|||
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.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney |
#12
|
||||
|
||||
Ok
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 |
#13
|
||||
|
||||
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 |
#14
|
|||
|
|||
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.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney |
#15
|
||||
|
||||
Gracias
Gracias por la explicacion
Gracias a todos los que me orientaron a traves de este codigo Chocolates para todos |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Actualizando AdoQuery | Nathan | Conexión con bases de datos | 3 | 05-05-2006 20:07:19 |
TWebModule actualizando respuestas... | Xianto | Internet | 2 | 26-05-2005 18:33:08 |
Actualizando un campo... | StartKill | Firebird e Interbase | 5 | 05-03-2004 20:50:54 |
Actualizando los TImage | Magneto | Varios | 4 | 05-12-2003 07:40:55 |
Actualizando Firebird | hgiacobone | Conexión con bases de datos | 5 | 09-06-2003 22:35:02 |
|