Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-03-2008
mancurnino mancurnino is offline
Miembro
 
Registrado: feb 2008
Posts: 65
Poder: 17
mancurnino Va por buen camino
Cambiar el contenido de un campo de una tabla

Hola, mi pregunta es esa; voy recorriendo una tabla, por ej:

Usuario (dni, nick, nombre, tfno)

Imaginaros, que llego a DNI, entoncs quiero cambiar el valor del nick de esa tupla por otro:

while not Modulodatos.T_Usuario.Eof do begin //Mientras no sea el fin de la tabla Usuario
if ModuloDatos.T_UsuarioDni.AsString = Edit_DNI.Text then begin
ShowMessage('El nick ya está registrado en el sistema. Por favor, introduzca un nick distinto.');
ModuloDatos.T_Usuario.Close;
Exit;
end;
Modulodatos.T_Usuario.Next; //Pasamos a la siguiente tupla de la tabla Usuario
end;

es decir, tngo Edit_DNI, y la tabla es T_Usuario, voy recorriendola hasta encontrar en T_Usuario el DNI que tengo en Edit_DNI, y luego en esa tupla quiero cambiar el valor del nick, por otro que tengo en un Edit (Edit_Nick)

Como lo hago? tengo que poner la tabla en modo edicion y eso, insertarlo y luego cerrar la tabla, lo que no quiero es que me lo inserte al final de la tabla, si no en esa tupla

Última edición por mancurnino fecha: 18-03-2008 a las 21:20:15.
Responder Con Cita
  #2  
Antiguo 18-03-2008
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
Código Delphi [-]
while not Modulodatos.T_Usuario.Eof do begin //Mientras no sea el fin de la tabla Usuario
if ModuloDatos.T_UsuarioDni.AsString = Edit_DNI.Text then begin
ShowMessage('El nick ya está registrado en el sistema. Por favor, introduzca un nick distinto.');
ModuloDatos.T_Usuario.Edit;
   ModuloDatos.T_Usuario.FieldbyName('DNI').AsString := Edit_DNI.Text;
ModuloDatos.T_Usuario.Post;
ModuloDatos.T_Usuario.Close;
Exit;
end;
Modulodatos.T_Usuario.Next; //Pasamos a la siguiente tupla de la tabla Usuario
end;

para la proxima encierra el codigo entre las etiquetas delphi, y no entendi mucho, pero creo que eso es lo que necesitas
__________________
...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
  #3  
Antiguo 18-03-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
No se si entiendo, pero bueno.
Código Delphi [-]
while not Modulodatos.T_Usuario.Eof do begin //Mientras no sea el fin de la tabla Usuario
if ModuloDatos.T_UsuarioDni.AsString = Edit_DNI.Text then 
begin
ShowMessage('El nick ya está registrado en el sistema. Por favor, introduzca un nick distinto.');
end
else
ModuloDatos.T_Usuario.Edit;
ModuloDatos.T_UsuarioDni.Value:= Edit_DNI;
ModuloDatos.T_Usuario.Post;
end;
Modulodatos.T_Usuario.Next;
 //Pasamos a la siguiente tupla de la tabla Usuario
end;
Con query
Código Delphi [-]
ModuloDatos.Query1.sql.text:=' Select * from Usuario where Dni = : D';
ModuloDatos.Query1.Parameters[0].Value:= Edit_DNI.Text;
ModuloDatos.Query1.Open;
if Edit_DNI.Text = ModuloDatos.Query1Dni.Value then 
begin
ShowMessage('El nick ya está registrado en el sistema. Por favor, introduzca un nick distinto.');
end
else
ModuloDatos.T_Usuario.Edit;
ModuloDatos.Query1.Filebyname('Dni').Value:= Edit_DNI.Text;
ModuloDatos.T_Usuario.Post;
end;
Saludos
Responder Con Cita
  #4  
Antiguo 19-03-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.289
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por mancurnino Ver Mensaje
(1) Imaginaros, que llego a DNI, entoncs quiero cambiar el valor del nick de esa tupla por otro

(2) if ModuloDatos.T_UsuarioDni.AsString = Edit_DNI.Text then begin

(3) ShowMessage('El nick ya está registrado en el sistema. Por favor, introduzca un nick distinto.');
Más o menos te has explicado, pero hay algunas cosas que no "cuadran" y que creo que han confundido a quien te ha contestado.

En primer lugar (1)creo que quieres actualizar el NICK cuando el DNI coincide (o eso he entendido yo).
LA búsqueda parece que es correcta (2) por DNI hasta que encuentras el que coincide, pero cuando lo encuentras sacas un mensaje de error referente al NICK (3); ¿Cómo puedes decir que el NICK está repetido si estás buscando por DNI?

Tampoco me queda claro, si cuando encuentras el DNI repetido en el edit del NICK ya tienes el NICK correcto o tienes que esperar a que el usuario lo introduzca, en cuyo caso, no puedes hacerlo todo en el mismo bloque.

El código que te han puesto es el correcto, sólo que en los ejemplos anteriores actualizan el campo DNI, mientras que tú deseas actualizar el NICk.

Un saludo, confuso...
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
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
cambiar campo de tabla a campo llave gmontes Firebird e Interbase 0 19-02-2008 17:42:19
Cambiar contenido en el DBGrid luxus OOP 2 23-03-2007 11:12:50
cambiar el valor de campo de una tabla jmlifi SQL 3 06-05-2005 14:42:01
cambiar el TIPO de dato de un CAMPO de una tabla Jose Mari SQL 2 01-04-2005 17:18:16
Eliminando contenido de campo Blob Ignacio Firebird e Interbase 1 17-11-2004 23:45:33


La franja horaria es GMT +2. Ahora son las 02:30:15.


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