Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-06-2010
agustin173 agustin173 is offline
Miembro
 
Registrado: jun 2010
Posts: 158
Poder: 14
agustin173 Va por buen camino
Modificar Registro

Hola como estan todos

Necesito Modificar un registro de mi base de dato, estoy utilizando SQL Server 2008, delphi 7 y esoy usando el componente adoquery.

Lo primero que hago es buscar el registro que necesito y me lo trae sin dificultad, pero cuando presiono el boton de modificar me da un error.

En el Edit(editebibuscar) a si se llama el edit, pongo el numero a modificar y me da un error.

voy a poner parte del codigo.

// Modifica los Datos en la Base de Datos
AdoItebiBuscar.SQL.Clear;
AdoItebiBuscar.Sql.Text:='Update into Itebis (Itebis) values(:Itebis)';
AdoItebiBuscar.Parameters.ParamByName('Itebis').Value:= strtoint(EDItebiBuscar.text);
AdoItebiBuscar.ExecSQL;
ShowMessage('Registro Modificado');

no se que es lo que estoy haciendo mal, por favor si alguien puede ayudarme se lo agradeceria mucho.
Responder Con Cita
  #2  
Antiguo 24-06-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Ahora mismo no encuentro mi bola de cristal para adivinar el error que te sale aunque trataré de adivinar echando las cartas o leyendo los posos del café

Bromas aparte, no conozco la variante de lenguaje sql del mssql, pero un update "normal" no se escribe así:

Código:
AdoItebiBuscar.Sql.Text:='Update into Itebis (Itebis) values(:Itebis)';
Sino así:
Código:
update tutabla set campo= valor
.

Por ejemplo, si quieres modificar el sueldo del trabajador con código 25, sería algo así como:

Código:
 update tbTrabajadores set sueldo=2000 where codigotrabajador=25
Parece que has copiado el sql de un "insert" y lo has modificado, te aconsejo que leas algún manual de sql.
Responder Con Cita
  #3  
Antiguo 24-06-2010
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
es correcto en parte lo que quieres hacer, pero en el update debes de decirle al motor que campos vas a modificar la sintaxis a mi juicio correcta es:

Código SQL [-]
update Itebis set campo1=:campo1, campo2=:campo2....etc where Itebis=:clave

donde tienes que cambiar los parámetros correspondientes,
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #4  
Antiguo 24-06-2010
agustin173 agustin173 is offline
Miembro
 
Registrado: jun 2010
Posts: 158
Poder: 14
agustin173 Va por buen camino
Modificar registro

Aziraid como estas hermanos espero que estes bien

Casimiro tiene razon lo que copie fue un insert pensando que solo debia cambiarlo por un update.

voy hacer los cambios como lo dijeron les contare luego haber si me funciona.
Responder Con Cita
  #5  
Antiguo 24-06-2010
agustin173 agustin173 is offline
Miembro
 
Registrado: jun 2010
Posts: 158
Poder: 14
agustin173 Va por buen camino
modificar registro

Muchachos todavia no me funciona puse el codigo de la siguiente forma.

// Modifica los Datos en la Base de Datos
AdoItebiBuscar.SQL.Clear;
AdoItebiBuscar.Sql.Text:='Update Itebis set Itebis:= :Itebis where Itebis:= :clave ';
AdoItebiBuscar.Parameters.ParamByName('Itebis').Value:= strtoint(EDItebiBuscar.text);
AdoItebiBuscar.ExecSQL;
ShowMessage('Registro Modificado');

AzidRain no se que me quisiste decir con la palabra ':clave' que usaste en el query.

la tabla se llama itebis y el campos de la base de dato se llama itebis

cuando introdusco el valor en el edit(editebibuscar) ejemplo: pongo un 30 y le doy a boton modificar me arroja el siguiente error.

project synapse.exe raised exception class econvert error with message "30"
'is not a valid integer value'. process stopped. Use step or run to continue.

miren el codigo a ver si esta bien porque creo que ahi es mi error, yo no tengo mucho tiempo programando ayudende por favor.
Responder Con Cita
  #6  
Antiguo 24-06-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Se supone que tienes una tabla con varios campos, ¿puedes poner aquí la estructura de la misma?
Responder Con Cita
  #7  
Antiguo 24-06-2010
agustin173 agustin173 is offline
Miembro
 
Registrado: jun 2010
Posts: 158
Poder: 14
agustin173 Va por buen camino
modificar registro

ok entendi

Lo que necesito es madificar un registro de una tabla puse el codigo para ver que estoy haciendo mal ese es todo el codigo que tengo en el boton modificar, si puedes hacer un ejemplo te lo agradeceria

la tabla se llama "itebis"

el campo a modificar de la tabla se llama "itebis"

y estoy usando un adoquery


excusame lo que pasa es que soy nuevo programando en delphi y tambien en este foro no conozco mucho las reglas.

ayudame por favor.
Responder Con Cita
  #8  
Antiguo 24-06-2010
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
Falta indicar que registro es el que se debe modificar, supongamos que es el que tiene el campo itebis=9 y lo vas a cambiar por un valor que captures en un edit, entonces Debe ser así:
Código Delphi [-]
// Modifica los Datos en la Base de Datos
AdoItebiBuscar.SQL.Clear;
AdoItebiBuscar.Sql.Text:='Update Itebis set Itebis:= :Itebis where Itebis:= :clave ';
AdoItebiBuscar.Parameters.ParamByName('Itebis').AsString:= EDItebiBuscar.text;
AdoItebiBuscar.Parameters.ParamByName('clave').AsInteger := 9;  //Aqui indicamos que vamos a cambiar el que tiene el valor 9
AdoItebiBuscar.ExecSQL;
ShowMessage('Registro Modificado');
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #9  
Antiguo 26-06-2010
agustin173 agustin173 is offline
Miembro
 
Registrado: jun 2010
Posts: 158
Poder: 14
agustin173 Va por buen camino
modificar registro

AzidRain te voy a poner todo a ver si puedes dar con mi problema

Estoy usando sql server 2008, delphi 7 y componente adoquery

La estructura de la base de dato es la siguiente:

La base de dato se llama "Synapse" y la tabla "Itebis"

Estructura de la Tabla Itebis

Column Name Data Type Allow Nulls
------------------------------------------------------------------------
Codigo Int
Fecha Date
Itebis char(3)

Lo que deseo es modificar los datos solamente del campo itebis los demas se quedan igual.

Tengo un boton llamado modificar que es donde tengo el problema, puse el codigo siguiente pero no me funciono.

// Modifica los Datos en la Base de Datos
AdoItebiBuscar.SQL.Clear;
AdoItebiBuscar.Sql.Text:='Update Itebis set Itebis:= :Itebis where Itebis:= :itebis';
AdoItebiBuscar.Parameters.ParamByName('Itebis').Asstring:= EDItebiBuscar.text;
AdoItebiBuscar.ExecSQL;
ShowMessage('Registro Modificado');

el .Asstring no me lo reconoce no se porque

cuando intento modificarlo me da el siguiente error:

project synapse.exe raised exception class econvert error with message 'objeto parameters mal definido. Se proporciono informacion incorrecta o incoherente. Process stopped. Use step or run to continue.

haber ahora si puedes ayudarme mejor con el codigo.
Responder Con Cita
  #10  
Antiguo 26-06-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por agustin173 Ver Mensaje
// Modifica los Datos en la Base de Datos
AdoItebiBuscar.SQL.Clear;
AdoItebiBuscar.Sql.Text:='Update Itebis set Itebis:= :Itebis where Itebis:= :itebis';
AdoItebiBuscar.Parameters.ParamByName('Itebis').Asstring:= EDItebiBuscar.text;
AdoItebiBuscar.ExecSQL;
ShowMessage('Registro Modificado');

'Update Itebis set Itebis:= :Itebis where Itebis:= :itebis';

Esa sentencia tiene DOS parámetros y sólo estás pasándolo Un parámetro.

Piensa en esto:
update tablaTrabajadores set sueldo=2000 where codigotrabajador=25

Como ves, hay DOS parámetros también.

Entonces, si tú quieres cambiar el valor del campo itebis a todos los que cumplan una condición tienes que pasarle los DOS parámetros, por ejemplo:

update TABLAitebis set CAMPOitebis=VALORQUEQUIERAS where CAMPOitebis='XXX'

Si quieres cambiar todos los registros que tengan el valor 'AAA' en el campo itebis, y quieres ponerle el valor 'GGG', entonce sería:
Código Delphi [-]
update itebis set itebis='GGG' where itebis='AAA'
AdoItebiBuscar.Parameters.Params[0].Asstring:=  EDItebiBuscar.text;  <---  VALOR QUE QUIERES PONER
AdoItebiBuscar.Parameters.Params[1].Asstring:=  EDItebiAQuien.text;  <--- A QUÉ REGISTROS SE LOS QUIERES PONER

He puesto Params[0] y Params[1] porque los dos son el mismo campo y puede resultar confuso.

Te aconsejo encarecidamente un tutorial de SQL y además la lectura de un estupendo libro como La cara oculta de delphi.

Última edición por Casimiro Notevi fecha: 26-06-2010 a las 01:47:22.
Responder Con Cita
  #11  
Antiguo 26-06-2010
agustin173 agustin173 is offline
Miembro
 
Registrado: jun 2010
Posts: 158
Poder: 14
agustin173 Va por buen camino
modificar registro

casimiro dejame ver si entendi

update itebis set itebis = editebisbuscar where itebis = editebisbuscar

casimiro hermano no entiendo puedes hacer el codigo para verificar mejor excusame es que no se mucho de programacion
Responder Con Cita
  #12  
Antiguo 26-06-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por agustin173 Ver Mensaje
casimiro dejame ver si entendi

update itebis set itebis = editebisbuscar where itebis = editebisbuscar
¿Yo he puesto eso?

Cita:
Empezado por agustin173 Ver Mensaje
casimiro hermano no entiendo puedes hacer el codigo para verificar mejor excusame es que no se mucho de programacion
Te aconsejo encarecidamente un tutorial de SQL y además la lectura de un estupendo libro como La cara oculta de delphi.


Creo que primero de todo debes aclarar PERFECTAMENTE una cosa: ¿Tú qué quieres hacer?
Responder Con Cita
  #13  
Antiguo 26-06-2010
agustin173 agustin173 is offline
Miembro
 
Registrado: jun 2010
Posts: 158
Poder: 14
agustin173 Va por buen camino
modificar registro

por medio a un edit modificar un registro eso es lo que deseo

tengo un edit llamado editebibuscar y deseo modificar el campo itebis de una tabla

y no se como hacerlo

si puedes leer mas arriba veras la estructura de la tabla solo necesito el codigo para modificar ese registro

estoy usando adoquery.

por favor
Responder Con Cita
  #14  
Antiguo 26-06-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por agustin173 Ver Mensaje
por medio a un edit modificar un registro eso es lo que deseo tengo un edit llamado editebibuscar y deseo modificar el campo itebis de una tabla y no se como hacerlo si puedes leer mas arriba veras la estructura de la tabla solo necesito el codigo para modificar ese registro
estoy usando adoquery. por favor
Amigo agustin173, la forma de hacerlo y el código te lo hemos puesto ya varias veces, unos y otros.

Si tú quieres modificar el valor de un campo de un registro, entonces necesitas dos cosas: el valor que quieres darle al campo y el registro que quieres modificar. Son DOS parámetros. Tal y como te lo he explicado antes, para que lo veas con un ejemplo claro, te lo repito:

update tablaTrabajadores set sueldo=2000 where CodigoTrabajador=15
En ese código que he puesto se va a modificar el campo 'sueldo' del registro que corresponde al trabajador que tiene el codigo 15, ¿ok?, son DOS parámetros que necesito pasarle, hay muchas formas de hacerlo, por ejemplo, según tu código sería algo así:
Código Delphi [-]
AdoItebiBuscar.Sql.Text:='Update tablaTrabajadores set Sueldo:= :sueldo where codigo := :codigo';
AdoItebiBuscar.Parameters.ParamByName('sueldo').Asstring:= EditConElNuevoSueldo.text;
AdoItebiBuscar.Parameters.ParamByName('codigo').AsString:=  EditConElCodigoDelTrabajador.text;
AdoItebiBuscar.ExecSQL;
Pues sólo has de adaptarlo a tu código, ya sabes, necesitas el edit con el valor que quieras darle a tu campo y el edit con el valor del registro que quieres modificar, porque si no lo pones entonces modificaría todos los resgistros de la tabla.

Y no es por hacerme pesado, pero te aconsejo encarecidamente un tutorial de SQL y además la lectura de un estupendo libro como La cara oculta de delphi.
Responder Con Cita
  #15  
Antiguo 28-06-2010
agustin173 agustin173 is offline
Miembro
 
Registrado: jun 2010
Posts: 158
Poder: 14
agustin173 Va por buen camino
Modificar Registro

Casimiro muchas gracias ya si funciono

Lo que sucede es que no se programar mucho gracias por tu paciencia y tambien a Azirain por su ayuda.

Casimiro baje el manual de sql y el de delphi que me enviaste lo voy a comenzar a estudiar


muchas gracias a todos.
Responder Con Cita
  #16  
Antiguo 28-06-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Estupendo, ya nos contarás los progresos que vas haciendo
Responder Con Cita
  #17  
Antiguo 07-01-2015
maxzama maxzama is offline
Miembro
NULL
 
Registrado: jun 2011
Posts: 126
Poder: 13
maxzama Va por buen camino
Modificar datos.

Hola a todos. Aqui va, un poco de ayuda.

Uso del delphi XE2, y firebir 2.5...

Se utilisa: IBquery...

Campo a modificar: Dias_Trabajados, Monto...

Utilizo un edit donde a sido cargado el dato que se va a modificar. Y tengo un boton de modificar...

Este es el codigo:

if application.MessageBox('DESEA GUARDAR?','guardar un Registro',
MB_ICONQUESTION OR MB_YESNO) = ID_YES then
begin
if Edit3.Text='' then
begin
Showmessage('Debe Incluir el codigo');
end
else
begin
Dmodulo.Asistencia_Madre.SQL.Clear ;
Dmodulo.Asistencia_Madre.SQL.Add('select * from Asistencia_Madre where CEDULA=:A');
Dmodulo.Asistencia_Madre.ParamByName('A').Value:=EDIT3.Text;
Dmodulo.Asistencia_Madre.Open;

if Dmodulo.Asistencia_Madre.FieldByName('CEDULA').AsString<>'' then
begin
Dmodulo.Asistencia_Madre.SQL.Clear ;
Dmodulo.Asistencia_Madre.SQL.Add(' update Asistencia_Madre set Tipo_documento=:Tipo_documento, DIAS_TRABAJADO=IAS_TRABAJADO, Monto=:Monto where CEDULA=:CEDULA ');

Dmodulo.Asistencia_Madre.ParamByName('CEDULA').Value:=Edit3.Text;
Dmodulo.Asistencia_Madre.ParamByName('Tipo_documento').Value:=Dmodulo.Asistencia_Madre.FieldByName(' Tipo_documento').AsString;
Dmodulo.Asistencia_Madre.ParamByName('DIAS_TRABAJADO').Value:=Edit4.Text;
Dmodulo.Asistencia_Madre.ParamByName('Monto').Value:=Edit20.Text;


Dmodulo.Asistencia_Madre.ExecSQL;
Dmodulo.ibt.Commit;
Dmodulo.Asistencia_Madre.SQL.Clear ;
Dmodulo.Asistencia_Madre.SQL.Add('select * from Asistencia_Madre ');
Dmodulo.Asistencia_Madre.Open;
SHOWMESSAGE('A sido Modificado');
end;
end;
end;
_______________________

Espero que le sirva.Dlb...
Responder Con Cita
  #18  
Antiguo 07-01-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Recuerda poner los tags al código fuente, ejemplo:



Gracias
Responder Con Cita
  #19  
Antiguo 07-01-2015
maxzama maxzama is offline
Miembro
NULL
 
Registrado: jun 2011
Posts: 126
Poder: 13
maxzama Va por buen camino
Agradecer

Gracias, por el dato...

Código Delphi [-]
// Esta noche estare montando, Sierta información. Para que me ayuden. Pr Fvr y Grcs...
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Modificar Registro de DBGrid BlueSteel Firebird e Interbase 6 11-03-2008 20:10:30
Modificar registro Elite237 OOP 4 03-08-2007 05:27:21
Modificar un Registro en un TMDOQuery KAYO Firebird e Interbase 4 30-07-2007 23:43:02
Como modificar un registro? Telemaco Conexión con bases de datos 4 20-02-2004 17:45:48
modificar olo un registro Irina SQL 1 26-05-2003 14:41:59


La franja horaria es GMT +2. Ahora son las 19:17:13.


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