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 03-11-2006
Avatar de Max_E.
Max_E. Max_E. is offline
Miembro
 
Registrado: sep 2006
Posts: 90
Poder: 18
Max_E. Va por buen camino
Talking Modificar campos internamente

hola a todos :

quisiera saber como puedo cambiar cada uno de los campos de toda una fila en mi archivo de datos sin la necesidad de mostrarlos primero a un dbgrid que es lo que solo sabia hacer

(1º mostraba en un dbgrid, luego digitaba y aceptaba el cambio con un dbnavigator),

lo que quiero hacer es modificar los campos de una fila especifica ''internamente'' ya conociendo los datos a modificar o reeemplazar

algo mas o menos asi

archivo DB ''alumnado''
campo ''nombre'' que tenga luis
modificar campo ''edad'' y ''peso''

de alumnado buscar en nombre:= luis entonces edad:= variable1 and peso := variable2


Que bueno que exista esta pagina donde pueda consultar y exponer mis dudas y preguntas, gracias a quien pueda ayudarme esta ves
Responder Con Cita
  #2  
Antiguo 03-11-2006
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Si está indexado por nombre, que debiera estarlo.

Código Delphi [-]
if MiTabla.FindKey(['luis']) then
begin
MiTabla.Edit;
MiTablaEdad.Value:=Variable1;
MiTablaPeso.Valu:=Variable2;
MiTabla.Post;
end
else
ShowMessage('No se encontró Luis');

Un Saludo.

Nota:Caso de no estar indexado deberás utilizar Locate.
Otra opción sería hacer lo mismo utilizando SQL.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 03-11-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Por sql, verás que es muy similar:
de alumnado buscar en nombre:= luis entonces edad:= variable1 and peso := variable2

Código Delphi [-]
query1.sql.text := Format('update alumnado set edad = %s, peso = %s where nombre = %s',[Inttostr(variable1), inttostr(variable2), QuotedStr('luis');
query1.Execsql;

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #4  
Antiguo 05-11-2006
Avatar de Max_E.
Max_E. Max_E. is offline
Miembro
 
Registrado: sep 2006
Posts: 90
Poder: 18
Max_E. Va por buen camino
aun no funciona

hola a todos:

la ayuda que me dio lape es la que me da resultados
pero el problema es que le cambia los valores a todos
los mienbros del campo nombre y no especificamente a luis

ha y ademas le faltaba poner ' ]) ' al final de los codigos

Código SQL [-]
query1.sql.text := Format('update alumnado set edad = %s, peso = %s where nombre = %s',[Inttostr(variable1), inttostr(variable2), QuotedStr('luis')]);
query1.Execsql;

alguien podria ver y decirme cual es el motivo de esta accion?

gracias por su ayuda..
Responder Con Cita
  #5  
Antiguo 06-11-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Pues no debería, es más, el único filtro que se usa es " nombre= 'luis' ", por tanto si no hay ninguno, no modifica nada.

Quizás haya problemas con las mayúsculas y minúsculas:
Código Delphi [-]
query1.sql.text := Format('update alumnado set edad = %s, peso = %s where lower(nombre) = %s',[Inttostr(variable1), inttostr(variable2), QuotedStr(lowercase('luis'))]);
query1.Execsql;

Espero que tengas más suerte.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #6  
Antiguo 06-11-2006
Avatar de mlara
[mlara] mlara is offline
Miembro Premium
 
Registrado: jun 2003
Ubicación: Colombia
Posts: 667
Poder: 21
mlara Va por buen camino
...o quizás todos se llaman 'luis'

Creo que es mejor tener un campo clave que no sea el nombre en tu tabla de alumnos, digamos el número de identificación o un campo tipo autoincremental... eso te garantiza que el registro es único. Así la sentencia podría ser:

Código Delphi [-]
query1.sql.text := Format('update alumnado set edad = %s, peso = %s where id = %d',[Inttostr(variable1), inttostr(variable2), id]);
query1.Execsql;

, obviamente deberás haber obtenido el id antes.
__________________
...y mañana caminaré por las calles pasando inadvertido, como siempre.

Última edición por mlara fecha: 06-11-2006 a las 14:47:57.
Responder Con Cita
  #7  
Antiguo 06-11-2006
Avatar de Ken_Masters
Ken_Masters Ken_Masters is offline
Miembro
 
Registrado: oct 2006
Posts: 45
Poder: 0
Ken_Masters Va por buen camino
Si eso de tener carácteres como llave primaria luego se vuelve un dolor de cabeza, mejor usa números y todo se vuelve mucho mas fácil XD
Responder Con Cita
  #8  
Antiguo 07-11-2006
Avatar de Max_E.
Max_E. Max_E. is offline
Miembro
 
Registrado: sep 2006
Posts: 90
Poder: 18
Max_E. Va por buen camino
ok gracias a todos ya funciono

el problema era tan raro que decidi dejarlo para el dia siguiente y lo que paso es que al reiniciar la maquina y delphi al dia siguiente supongo que volvio todo a acomodarse y los codigo funcionaron a la perfeccion tal ves fue que hice tantos cambios a los codigos y abia generado tantos mensajes de error que altere algo en el sistema (en otras palabras no tengo ni la mas minima idea de lo que paso )

posdata:
si generaste muchos mensajes de error, modicaste mucho los codigos y estas seguro de no encontrar error y aun asi no funciona tu aplicacion reinicia la maquina o al menos delphi
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
modificar campos¡¡ chileno Conexión con bases de datos 1 17-09-2006 17:50:58
Modificar campos en un DBGrid en tiempo de ejecuciòn maravert Conexión con bases de datos 3 14-05-2006 08:37:41
¿Como modificar el ancho de dos campos en un DbLookupComboBox? cybergerman OOP 1 28-10-2004 10:07:39
modificar campos trabuc Conexión con bases de datos 3 18-10-2004 13:25:08
¿Modificar nombres de campos por SQL? m@r SQL 3 22-10-2003 01:30:49


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


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