Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #21  
Antiguo 05-08-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Déjate de cuentos amigo, eres un perfeccionista
Saludos
Responder Con Cita
  #22  
Antiguo 05-08-2007
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
jajajaja, nooo vale, 13 años tratando de explicar mis sistemas he ideado cosas para hacer la vida de mis sistemas mas facil
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #23  
Antiguo 06-08-2007
Elite237 Elite237 is offline
Miembro
 
Registrado: jul 2007
Posts: 162
Poder: 17
Elite237 Va por buen camino
Modificar registro

Hola caral, asi como me sugeriste que deje el codigo, asi es como lo tengo, pero no me hace lo que yo le pido, por ejemplo, tengo un modulo de modificaciones de departamento, tengo 3 botones, uno que es para buscar el registro (que me mandara a otra pantalla donde esta mi dbgrid y que me visualizara todos los registros que haya mandado a llamar), luego tengo un boton de guardar(que al hacer las modificaciones correspondientes me debe volver a guardar los cambios que le hize en ese registro) y el otro boton es cancelar..

Ahora, ya que tengo toda la informacion en los edit, lo que sigue es modificar el registro, y lo que quiero modificar por ejemplo es el nombre del departamento, y borro por asi decirlo el departamento informatica y escribo sistemas. Entonces al momento de dar en el boton de guardar los cambios(en el cual esta el codigo que te mostre), lo que me hace es que me duplica el registro, por ejemplo ahora me quedaron 2 registros, uno con el departamento informatica y otro con el departamento de sistemas, y eso no esta bien, por que me debe de modificar solo el registro actual, sin duplicarlo..Espero y me haya explicado bien...espero tu respuesta, gracias por tu tiempo
Responder Con Cita
  #24  
Antiguo 06-08-2007
Avatar de GustavoCruz
GustavoCruz GustavoCruz is offline
Miembro
 
Registrado: jul 2006
Ubicación: Sampués Sucre (Colombia)
Posts: 293
Poder: 18
GustavoCruz Va por buen camino
Smile Ado <> Bde

Hola amigo Elite237, a tu código le hace falta una pequeña instrucción...
Cuando uno trabaja con tabla y desea realizar una modificación a acutalización a un registro, lo primero es ubicar el cursor en el registro y luego a modificar...

con las tablas es sencillo añade atu codigo esto:

Código Delphi [-]
If tutabla.Locate('el campo', 'el valor',[]) then
  Begin
    edit;
    ...
    post;
  end;

si son varios campo así.

Código Delphi [-]
If tutabla.Locate('campo1;campo2;campo2;...', VarArrayOf(['valor1', 'valor2', 'valor3',...]), [loPartialKey])then
  Begin
    edit;
    ...
    post;
  end;

con esto se debe solicionar el inconveniente...
Responder Con Cita
  #25  
Antiguo 07-08-2007
Elite237 Elite237 is offline
Miembro
 
Registrado: jul 2007
Posts: 162
Poder: 17
Elite237 Va por buen camino
Modificar registro

Hola Gustavo Cruz, ya introduje el codigo que me sugeriste pero me manda un error que dice

Código:
Project1.exe raised exception class EOLeException with message 'Argumentos incorrectos, fuera del intervalo permitido o en conflicto con otros'.
este es el codigo que introduci:

Código:
procedure TForm30.BitBtn2Click(Sender: TObject);
begin
if Tmaru.Locate('nive_sall;salario_sal',VarArrayOf(['Edit1.Text','Edit2.Text2']),[loPartialKey]) then
  begin
   Edit1.Clear;
   Edit2.Clear;
   Tmaru.Post;
end;
end;
una pregunta cuando me dices Tutabla, te refieres a mi ADOTable, no es asi?
Responder Con Cita
  #26  
Antiguo 07-08-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
La verdad no entiendo por que te esta pasando lo que dices, no tiene sentido.
Podrias hacer una prueba, simple, cambia los edit por dbedit, es dificil que en modo edit te duplique nada.
Saludos
Responder Con Cita
  #27  
Antiguo 07-08-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.561
Poder: 25
egostar Va camino a la fama
Vaya, pues tienes un pequeño error al pasar el dato de los objetos Edit

tu estas pasando así

Código Delphi [-]
['Edit1.Text','Edit2.Text2'] //aquí estas pasando el valor 'Edit1.Text' y no el valor que tiene el Edit.

Debería ser así

Código Delphi [-]
[Edit1.Text,Edit2.Text]

Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #28  
Antiguo 07-08-2007
Elite237 Elite237 is offline
Miembro
 
Registrado: jul 2007
Posts: 162
Poder: 17
Elite237 Va por buen camino
Modificar registro

Hola, gracias por el comentario, ya lo modifique, solo que ahora no hace nada cuando presiono el boton, solo se quedan los valores que tengo y no guarda nada...te mando mi codigo.

Código:
procedure TForm30.BitBtn2Click(Sender: TObject);
begin
if Tmaru.Locate('nive_sall;salario_sal',VarArrayOf([Edit1.Text,Edit2.Text]),[loPartialKey]) then
  begin
   Edit1.Clear;
   Edit2.Clear;
   Tmaru.Post;
   mensaje:=Application.MessageBox('Los datos fueron guardados con éxito','Mensaje de confirmación');
end;
end;
Responder Con Cita
  #29  
Antiguo 07-08-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.561
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por Elite237 Ver Mensaje
Hola, gracias por el comentario, ya lo modifique, solo que ahora no hace nada cuando presiono el boton, solo se quedan los valores que tengo y no guarda nada...te mando mi codigo.

Código:
procedure TForm30.BitBtn2Click(Sender: TObject);
begin
if Tmaru.Locate('nive_sall;salario_sal',VarArrayOf([Edit1.Text,Edit2.Text]),[loPartialKey]) then
  begin
   Edit1.Clear;
   Edit2.Clear;
   Tmaru.Post;
   mensaje:=Application.MessageBox('Los datos fueron guardados con éxito','Mensaje de confirmación');
end;
end;

Pues efectivamente, hace lo que tiene que hacer, no guarda nada porque no estas almacenando nada.

Tu haces esto, localizas el dato, limpias los valores de los edit, pero jamás pasas los valores que quieres a la base de datos, solo estás realizando un Tmaru.post a nada.

Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #30  
Antiguo 07-08-2007
Elite237 Elite237 is offline
Miembro
 
Registrado: jul 2007
Posts: 162
Poder: 17
Elite237 Va por buen camino
Modificar registro

Egostar, cheque lo que me decias, y tienes razon, lo que hize fue introducir esto:

Código:
procedure TForm30.BitBtn2Click(Sender: TObject);
begin
if Tmaru.Locate('nive_sall;salario_sal',VarArrayOf([Edit1.Text,Edit2.Text]),[loPartialKey]) then
  begin
   Tmaru.Edit;
   Tmaru.FieldValues['nive_sall']:=Edit1.Text;
   Tmaru.FieldValues['salario_sal']:=Edit2.Text;
   Tmaru.Post;
   Edit1.Clear;
   Edit2.Clear;
   mensaje:=Application.MessageBox('Los datos fueron guardados con éxito','Mensaje de confirmación');
end;
end;
pense que con esto se solucionaria mi problema, pero tampoco, presiono el boton para guardar y no hace nada...disculpa si no entendi bien lo que me decias, pero que tengo mal???
Responder Con Cita
  #31  
Antiguo 07-08-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.561
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por Elite237 Ver Mensaje
Egostar, cheque lo que me decias, y tienes razon, lo que hize fue introducir esto:

Código:
procedure TForm30.BitBtn2Click(Sender: TObject);
begin
if Tmaru.Locate('nive_sall;salario_sal',VarArrayOf([Edit1.Text,Edit2.Text]),[loPartialKey]) then
  begin
   Tmaru.Edit;
   Tmaru.FieldValues['nive_sall']:=Edit1.Text;
   Tmaru.FieldValues['salario_sal']:=Edit2.Text;
   Tmaru.Post;
   Edit1.Clear;
   Edit2.Clear;
   mensaje:=Application.MessageBox('Los datos fueron guardados con éxito','Mensaje de confirmación');
end;
end;
pense que con esto se solucionaria mi problema, pero tampoco, presiono el boton para guardar y no hace nada...disculpa si no entendi bien lo que me decias, pero que tengo mal???
Si no te hace nada, y no te muestra el mensaje que pones quiere decir que no está encontrando el registro que buscas.

Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #32  
Antiguo 07-08-2007
Elite237 Elite237 is offline
Miembro
 
Registrado: jul 2007
Posts: 162
Poder: 17
Elite237 Va por buen camino
Modificar registro

Los registros si estan, de hecho, lo primero que hago es buscar ese registro, y de ahi que lo encuentra los mando a llamar, ya que me aparecen los registros en los edit, lo que hago son modificarlos y es alli donde despues de haberlos modificado le doy guardar y en ese momento es que falla, osea no hace nada, el boton aparece como si no estuviera programado, osea que por mas que le presione, no hace nada, y me tengo que salir de la aplicacion
Responder Con Cita
  #33  
Antiguo 07-08-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.561
Poder: 25
egostar Va camino a la fama
Porque mejor no usas el GotoKey...

Código Delphi [-]
with Tmaru do begin
  EditKey;
  FieldByName('Nive_Sall').AsString := Edit1.text;
  FieldByName('Salario_Sal').AsString := Edit2.Text;
  if GotoKey = true then begin
     Edit;
     FieldValues['nive_sall']:=Edit1.Text;
     FieldValues['salario_sal']:=Edit2.Text;
     Post;
  end;
end;

Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney

Última edición por egostar fecha: 07-08-2007 a las 06:11:27.
Responder Con Cita
  #34  
Antiguo 07-08-2007
Elite237 Elite237 is offline
Miembro
 
Registrado: jul 2007
Posts: 162
Poder: 17
Elite237 Va por buen camino
Modificar registro

Una pregunta, como declaro lo que sugeriste, es que me dice que no esta declarado....por eso te pregunto, lo que pasa es que todavia no se bien, estoy empezando...

Como declaro esto:
Código Delphi [-]
EditKey;
GotoKey;
Responder Con Cita
  #35  
Antiguo 07-08-2007
Avatar de GustavoCruz
GustavoCruz GustavoCruz is offline
Miembro
 
Registrado: jul 2006
Ubicación: Sampués Sucre (Colombia)
Posts: 293
Poder: 18
GustavoCruz Va por buen camino
Smile Ado <> Bde

Hola amigo Elite237 prueba esto sin el loPartialKey:

Código Delphi [-]
procedure TForm30.BitBtn2Click(Sender: TObject);
begin
if Tmaru.Locate('nive_sall;salario_sal',VarArrayOf([Edit1.Text,Edit2.Text]),[]) then
  begin
   Tmaru.Edit;
   Tmaru.Fieldbyname('nive_sall').asvalue:=Edit1.Text;
   Tmaru.Fieldbyname('salario_sal').asvalue:=Edit2.Text;
   Tmaru.Post;
   Edit1.Clear;
   Edit2.Clear;
   Application.MessageBox('Los datos fueron guardados con éxito','Mensaje de confirmación',mb_ok+mb_iconiformation);
end;
end;

si uno hace una actualización utilizando el TADOQuery o el TQuery, la sentencia normalmente, es asi
Código SQL [-]
"update Tmaru set campo1=nuevovalor1, campo2=nuevovalor2 where .... grupo de condiciones...."

qué sucede en tu código, que estás buscando por dos campos y luego estos mismos campos los estás reemplazando...
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


La franja horaria es GMT +2. Ahora son las 00:07: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
Copyright 1996-2007 Club Delphi