Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   UPDATE con seccion llamada UPDATE sql's MyDAC (https://www.clubdelphi.com/foros/showthread.php?t=42910)

karlaoax 25-04-2007 19:27:22

UPDATE con seccion llamada UPDATE sql's MyDAC
 
JE je :cool: aqui molestando de nuevo con los componentes Mydac.
Estoy haciendo Updates en una tabla, utilizando MyQuery, una seccion llamada UPDATE sql's, el codigo que tengo es:
UPDATE productos
SET
stock = :stock // Campo a actualizar
WHERE
codigo = :codigo // Pasado como parametro de un txtcodigo2(edit)

En un boton para ejecutar myquery:

MyTable1.Edit;
QueryUpdate.Close;
QueryUpdate.SQL.Clear;
QueryUpdate.SQL.Text:='UPDATE productos SET stock='+DBedit3.Text+'WHERE codigo="'+txtcodigo2.Text+'"';
QueryUpdate.Execute;
QueryUpdate.ParamByName('codigo').AsString := txtcodigo2.Text; // Depura
MyTable1.Refresh;
MyTable1.Post;

Siguiendo los consejo de Roman para ver que es lo q se afecta en la tabla, colocando el MyDacVCL en uses y Debug a TRUE, esta super.

Cuando clickeo mi boton todo bien, por que depuro con f5 mi codigo, peroooooooo.........

Me sale este mensaje:
Project1.exe raised exception class Emyerror with message 'You have an eror in your SQL syntax; check the manual that corresponds to your MySQL server version fopr the right syntax to use near 'codigo="5" at line 1' (El 5 es el parametro que pase).

Creo que mi clausula WHERE esta mal implementada.

Lo unico que quiero hacer es modificar mi campo stock de mi tabla, al momento de hacerlo, todos los registros q tengo, el campo sctock los cambioa a Cero.

De antemano, gracias

Karla

droguerman 25-04-2007 21:01:07

reemplaza esto:
Código SQL [-]
  QueryUpdate.SQL.Text:='UPDATE productos SET stock='+DBedit3.Text+'WHERE codigo="'+txtcodigo2.Text+'"';

por esto:
Código SQL [-]
  QueryUpdate.SQL.Text:='UPDATE productos SET stock='+DBedit3.Text+'                    WHERE codigo="'+txtcodigo2.Text+'"';

karlaoax 25-04-2007 21:16:40

:o
 
QueryUpdate.SQL.Text:='UPDATE productos SET stock='+DBedit3.Text+' WHERE codigo="'+txtcodigo2.Text+'"';


Ok, el codigo si esta bien.... Pero por que cuando le deje espacio si funciona, y mi codigo q no tenia espacios en el WHERE no? :rolleyes:

droguerman 25-04-2007 21:47:17

bueno, culpa mía por no explicarlo, lo que sucede es que estás mandando al servidor:
Código SQL [-]
UPDATE productos SET stock=100WHERE codigo=101


con la que te dí estás enviando
Código SQL [-]
UPDATE productos SET stock=100 WHERE codigo=101
es decir solo es un error de sintaxis

karlaoax 25-04-2007 22:10:50

:p Muchas Gracias por la explicacion :p , Droguerman.
:D


La franja horaria es GMT +2. Ahora son las 15:55:05.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi