Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-08-2006
joako joako is offline
Registrado
 
Registrado: ago 2006
Posts: 8
Poder: 0
joako Va por buen camino
Cool problema con el table.edit

hola amigos, no soy programador, pero por cuestiones laborales necesito hacer un sistema. estoy atorado con la actualizacion de registros.

es un modulo de compras, voy ingresando las claves y si ingreso una clave que ya esta en la lista (dbgrid ligado a una tabal de mysql) debe preguntarme si lo deseo sumarselo a la cantidad anterior.

el problema es que no se como decirle que me cambie los campos de un registro especifico.

espero haberme explicado

query1.SQL.clear;
query1.SQL.Add('select * from entradatemp WHERE id_producto="'+edit2.Text+'" ');
query1.Open;

//aqui cargo los campos a unos edits y hago las sumas
edit4.Text:=inttostr(strtoint(edit4.Text)+query1.fieldbyname('cantidad').AsInteger);
edit6.Text:=floattostr(strtoint(edit4.Text)*strtofloat(edit5.Text));

//aqui debe ingresar el valor de los edits, pero siempre modifica el primer registro de mi tabla
//como le hago para k me modifique un campo donde coincida con la clave del producto??

table1.Edit;
table1.FieldByName('cantidad').AsInteger:=strtoint(edit4.Text);
table1.FieldByName('importe').AsFloat:=strtofloat(edit6.Text);
table1.Post;

gracias
Responder Con Cita
  #2  
Antiguo 14-08-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Primero debes colocar table1 en el registro adecuado. Prueba con una instrucción Locate, algo como:

Código Delphi [-]
table1.Locate('id_producto', [edit2.text]);

// Saludos
Responder Con Cita
  #3  
Antiguo 14-08-2006
joako joako is offline
Registrado
 
Registrado: ago 2006
Posts: 8
Poder: 0
joako Va por buen camino
Cool

gracias por tu respuesta, pero me arroja un error esa sentencia:

[Error] entradas.pas(167): Ordinal type required

sabes a que se debe?

grax
Responder Con Cita
  #4  
Antiguo 14-08-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Lo dije un poco de memoria. Creo que más bien debe ser:

Código Delphi [-]
table1.Locate('id_producto', edit2.Text, []);

De cualquier forma consulta la ayuda de Delphi acerca del método Locate de TDataSet para ver cuál es la sintaxis correcta.

// Saludos
Responder Con Cita
  #5  
Antiguo 15-08-2006
joako joako is offline
Registrado
 
Registrado: ago 2006
Posts: 8
Poder: 0
joako Va por buen camino
Cool

Cita:
Empezado por roman
Lo dije un poco de memoria. Creo que más bien debe ser:

Código Delphi [-]table1.Locate('id_producto', edit2.Text, []);


De cualquier forma consulta la ayuda de Delphi acerca del método Locate de TDataSet para ver cuál es la sintaxis correcta.

// Saludos
ya lo he intentado de varias formas y no me hace los cambios en el registro correcto.
segun la ayuda de delpi la sintaxis esta bien, alguien ve cual es el problema:

Código SQL [-]table1.Locate('id_producto',edit2.Text,[lopartialkey]); table1.Edit; table1.fieldbyname('cantidad').AsInteger:=strtoint(edit4.Text); table1.FieldByName('importe').AsFloat:=strtofloat(edit6.Text); table1.Post;


Gracias
Responder Con Cita
  #6  
Antiguo 15-08-2006
joako joako is offline
Registrado
 
Registrado: ago 2006
Posts: 8
Poder: 0
joako Va por buen camino
Cool update!!

lo he intentado tambien con el UPDATE, pero no busco como ingresar los campos de tipo integer y float

Código SQL [-]
query1.SQL.Clear;      
query1.SQL.Text:='UPDATE entradatemp SET (cantidad:=edit4.text, importe:=edit6.text) WHERE id_producto="'+edit2.Text+'" ';      
query1.ExecSQL;


Grax

Última edición por joako fecha: 15-08-2006 a las 00:16:07.
Responder Con Cita
  #7  
Antiguo 15-08-2006
Avatar de Enan0
Enan0 Enan0 is offline
Miembro
 
Registrado: may 2004
Ubicación: Argentina
Posts: 565
Poder: 20
Enan0 Va por buen camino
Cita:
Empezado por joako
lo he intentado tambien con el UPDATE, pero no busco como ingresar los campos de tipo integer y float

Código SQL [-]query1.SQL.Clear; query1.SQL.Text:='UPDATE entradatemp SET (cantidad:=edit4.text, importe:=edit6.text) WHERE id_producto="'+edit2.Text+'" '; query1.ExecSQL;



Grax

Mira ahi esta el problema el DElimitador de String es ' en SQL el mismo que en delphi..
entonces tenes que hacer lo siguiente

Código SQL [-]
query1.SQL.Clear;      
query1.SQL.Text:='UPDATE entradatemp SET (cantidad,importe) values('+#39+edit4.text+#39+','+#39+edit6.text+#39+') WHERE id_producto='+#39+edit2.Text+#39';      
query1.ExecSQL;

Como veras Puse varias Veces el Codigo #39 en delphi es ' por lo tanto estas introduciendo dicho valor a la cadena de SQL sin cortar el Srting.
Ahora Tenes que ver Si Cantidad son de tipo Numerico o String. como yo lo he puesto supongo que son del tipo STring.

Saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problema ADOQuery con INTO Table o INTO CURSOR reynaldo Tablas planas 0 26-04-2006 17:17:26
problema con table.state JoseQ Conexión con bases de datos 7 23-07-2004 11:03:16
Problema en Create table Red_Delphi Oracle 1 09-02-2004 15:04:02
Problema con el edit superhopi Varios 5 06-05-2003 09:40:47


La franja horaria es GMT +2. Ahora son las 23:45:27.


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
Copyright 1996-2007 Club Delphi