Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Problema con el UPDATE (https://www.clubdelphi.com/foros/showthread.php?t=71455)

XcamX 20-12-2010 16:13:41

Problema con el UPDATE
 
hola como estan todos, es la primera vez que creo un hilo y espero haberlo hecho bien y si no les pido disculpas.
El tema es que no puedo dar con el codigo correcto, el codigo de abajo me genera error, alguno puedo ayudarme???

sqlmod.SQL.Clear;
sqlmod.SQL.Add('Update EstadoTramite set Estado:=:nuevoestado where NroTramite=:tramite');
sqlmod.ParamByName('nuevoestado').AsString:='completo';
sqlmod.ParamByName('tramite').AsString:='REN_56589899';
sqlmod.ExecSQL;

EstadoTramite = Nombre Tabla
sqlmod = Zquery

microbiano 20-12-2010 16:36:18

hola
 
hola buen dia deberias poner que error te marca para poderte ayudar, pero puedes probar con esto haber si te funciona.
Código Delphi [-]
sqlmod.SQL.Clear;
sqlmod.SQL.Add('Update EstadoTramite set Estado=:nuevoestado where NroTramite=:tramite');
sqlmod.parameters.ParamByName('nuevoestado').value:='completo';
sqlmod.parameters.ParamByName('tramite').value:='REN_56589899';
sqlmod.ExecSQL;

XcamX 20-12-2010 16:39:32

gracias por la velocidad de la respuesta
el error que me da es el siguiente, esta en la sentencia de sql pero no identifico cual es el error

Incorrect token followed by ":"

microbiano 20-12-2010 16:55:22

respuesta
 
ya probaste con el codigo que te puse?


prueba con el siguiente codigo es el que yo uso para ahcer las modificaciones adaptalo a lo que tu necesitas.

Código Delphi [-]
with Fmodulo.Qry_Temp do
    begin
      sQL.Clear;
      SQL.Add('Update empresa Set nombre=:pnombre');
      sql.Add(',rfc=:prfc');
      sql.Add(',direccion=:pdireccion');
      sql.Add(',cp=:pcp');
      sql.Add(',localidad=:plocalidad');
      sql.Add(',tel=:ptel');
      sql.Add(',tel2=:ptel2');
      sql.Add(',fax=:pfax');
      sql.Add(',mail=:pmail');
      sql.Add(',web=:pweb');
      sql.Add('Where idempresa=:pid');

      Parameters.ParamByName('pnombre').Value:=wnombre;
      Parameters.ParamByName('prfc').Value:=wrfc;
      parameters.ParamByName('pdireccion').Value:=wdireccion;
      Parameters.ParamByName('pcp').Value:=wcod_pos;
      parameters.ParamByName('plocalidad').Value:=wlocalidad;
      parameters.ParamByName('ptel').Value:=wtel;
      Parameters.ParamByName('ptel2').Value:=wtel2;
      Parameters.ParamByName('pfax').Value:=wfax;
      Parameters.ParamByName('pmail').Value:=wmail;
      Parameters.ParamByName('pweb').Value:=wweb;
      Parameters.ParamByName('pid').Value:=widentificador;

       ExecSQL;

     end

Casimiro Noteví 20-12-2010 17:21:39

Bienvenido a clubdelphi, XcamX, por favor, lee nuestra guía de estilo, gracias.

Creo que te faltó decir qué base de datos usas, qué error te sale, exactamente en qué parte del código y recuerda poner títulos descriptivos a tus mensajes. Gracias por tu colaboración.

Neftali [Germán.Estévez] 20-12-2010 17:26:23

El el código inicial te sobran : después de Estado

(en rojo)
Update EstadoTramite set Estado:=:nuevoestado where
NroTramite=:tramite');

microbiano 20-12-2010 18:33:05

y siendo logico por que quieres poner dos puntos?,cuando quieres pasar un parametro es el signo de igualy dos puntos quita los puntos en color rojo y jecuta tu instruccion.

por lo que veo quieres que se te arme la consulta por que te he dicho y puesto ejemplos pero veo que no analisas el simple hecho de copiar y pegar no funciona.

XcamX 20-12-2010 21:13:46

copiar y pegar?
 
Les doy las gracias a todos por la ayuda.
No me habia dado cuenta de esos dos puntos, bueno los saque y ahora me da otro error:

Cita:

Database connection components in not assigned
esa linea de codigo me esta volviendo loco.

estoy usando base de datos MySql alojada en un Hosting.
y la conexion esta hecha con componentes zeos

rgstuamigo 20-12-2010 21:35:34

Una Observacion
 
Solo agregar :rolleyes: que si en la consulta SQL no se está capturando los datos "Estado y NroTramite" de ninguna otra parte, ya sea de una variable o de algun componente, entoces estaría demás estar creando parámetros en la consulta, por que se lo podría haberlo hecho directamente ;)
>
Código Delphi [-]
sqlmod.SQL.Clear;
sqlmod.SQL.Add('Update EstadoTramite set Estado = ''completo'' where NroTramite = ''REN_56589899'' ');//<-Hago la consulta 
                                                                              //directamente sin crear parámetros ;) ;)
sqlmod.ExecSQL;
Saludos...:)

XcamX 20-12-2010 21:38:13

Gracias por tu respuesta, pero la idea es que pueda cambiar los parametros, lo puse asi para probar que ande nada mas. Pero los paramentros los necesito!

rgstuamigo 20-12-2010 21:41:51

Ok
 
Muy válida la aclaración.;)
Saludos...:)

XcamX 20-12-2010 23:42:42

solucionado
 
Gracias a todos por su apoyo en mi primera consulta, el error lo tenia yo, pero ya esta solucionado. Muchisimas gracias de nuevo y sepan disculpar si no me exprese bien o dije alguna tonteria, ya voy a ir aprendiendo.
Saludos

Casimiro Noteví 21-12-2010 00:32:48

Cita:

Empezado por XcamX (Mensaje 385497)
[..] ya voy a ir aprendiendo.
Saludos

Todos vamos aprendiendo, cada día :)


La franja horaria es GMT +2. Ahora son las 15:03:14.

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