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
  #1  
Antiguo 21-05-2006
Avatar de anghell77
anghell77 anghell77 is offline
Miembro
 
Registrado: may 2006
Posts: 194
Poder: 18
anghell77 Va por buen camino
Filtro para Actualizar tabla...

Delphi 7 Paradox7
A ver...
Primero: Se que probablemente voy a recibir una reprimenda por lo siguiente:
Tabla: CALIFICACIONES
Llave Primaria: NO EXISTE
CAMPOS DEL PROBLEMA : MATERIA, PERIODO1, PERIODO2, PERIODO3 (corresponden a la primera, segunda y tercera evaluacion, todas ellas en distinto tiempo)
SITUACION : (por la que me van a regañar). NO EXISTE LLAVE PRIMARIA. Estoy guardando maximo 6 registros del MISMO NUMERO DE CONTROL (No_Control) con DISTINTA MATERIA, en un momento determinado. este Proceso se denomina CARGAR MATERIAS.
Dado que las calificaciones de los tres periodos se capturarán en tiempo distinto, aquí ocurre la situacion:

¿Como actualizo en una sola "pasada" las 6 calificaciones, obvio una de cada materia, del periodo correspondiente, para el numero de control?

Mas menos esto esta asi:

No_Control Materia Calificacion

01041125 ADSI I <---
01041125 SWS I <--
01041125 BD II <---
01041125 SWD II <---
01041125 ED II <---
01041125 PPE III <----

Los Primeros dos campos los lleno en un Form(CARGAR MATERIAS) mediante un
DataModule2.Buscar_Materia_Cargar.First;
For i:=0 to DataModule2.Buscar_Materia_Cargar.RecordCount-1 do
begin
DataModule2.Cargar_Materias.Close;
DataModule2.Cargar_Materias.ParamByName('e_No_Control').AsString:=trim(DBEdit1.Text);
DataModule2.Cargar_Materias.ParamByName('e_Especialidad').AsString:=trim(DBEdit9.Text);
DataModule2.Cargar_Materias.ParamByName('e_Grupo').AsString:=trim(DBEdit11.Text);
DataModule2.Cargar_Materias.ParamByName('e_Semestre').AsString:=trim(DBEdit10.Text);
DataModule2.Cargar_Materias.ParamByName('e_Materia').AsString:=trim(DBGrid1.SelectedField.AsString);
DataModule2.Cargar_Materias.ParamByName('e_Carga_C').AsString:='True';
DataModule2.Cargar_Materias.ExecSQL;
DataModule2.Buscar_Materia_Cargar.Next;
end;

Entonces, en otro Form, para capturar las calificaciones, mostrar unicamente el No_Control (01041125) y llenar las calificaciones de las materias correspondientes....¿¿¿COMO HACERLO?????

tal vez lo dije muchas veces, pero espero que quede mas menos entendible....AYUDA!!!!!
__________________
"...Ayer Bastaba un Sueño..."
Responder Con Cita
  #2  
Antiguo 21-05-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Lo he leido 5 veces y no entiendo nada... hablas de 2 tablas pero solo le pones nombre a una (calificaciones), despues ejecutas SQLs pero no dices que lleva dentro el sql ... etc.

Imposible
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #3  
Antiguo 21-05-2006
Avatar de anghell77
anghell77 anghell77 is offline
Miembro
 
Registrado: may 2006
Posts: 194
Poder: 18
anghell77 Va por buen camino
lo se...es dificil..

la situacion es esta...
TABLA : PRINCIPAL Almacena los No_Control como llave primaria, que se empleará para las relaciones con otras tablas.
El caso es que en la tabla CALIFICACIONES, estoy haciendo una insercion en el Form "CARGAR MATERIAS" a los campos, "No_Control" y "Materia", únicamente en este form... y dicha tabla no tiene llave Primaria.

Luego, en un form "Capturar Calificaciones" ejecuto una consulta que me devuelva el No_Control (como parámetro de entrada), desde la tabla Calificaciones:
"Select *from Calificaciones where No_control=:entrada"
Ejecutando en un BitBtn
Query1.Close;
Query1.ParamByname('entrada').AsString:=trim(Edit1.Text);
Query1.Open;

y este proceso debe regresar los datos que muestro arriba, No_Control y Calificaciones. Suponiendo que capturaremos las calificaciones del primero periodo en cada materia, no sé como realizar la actualizacion:

por ejemplo No_control, y Materia ya estan capturados; resta llenar "Calificacion"
No_Control Materia Calificacion
01041125 ADSI I 75 <-----Este dato entra cuando yo lo necesite

y así consecutivamente hasta terminar con el 01041125 y capturar otro, y llenar las calificaciones.

En resumen:
Lleno dos campos de una tabla en un proceso, con 6registros.
Los muestro en otro proceso
y en otro requiero actualizar los 6 registros en el campo Calificacion...

Esta raro mi metodo no??
__________________
"...Ayer Bastaba un Sueño..."
Responder Con Cita
  #4  
Antiguo 21-05-2006
Avatar de anghell77
anghell77 anghell77 is offline
Miembro
 
Registrado: may 2006
Posts: 194
Poder: 18
anghell77 Va por buen camino
Pues parece ser que ya!!!

He empleado Edit, para capturar cada el valor de la calificacion de materia.
Utilizando la funcion de conversion de datos String, obtengo el valor.
En OnExit de cada Edit, ejecuto un Update

Update Calificaciones set Periodo1=:Entrada
where No_Control=:CTRL and MAteria=:MatParam

con el codigo:

Query2.Close;
Query2.paramByName('CTRL').AsString:=trim(DBEedit1.Text);
Query2.paramByName('MATPARAM').AsString:=trim(DBGrid1.SelectedField.AsString);
Query2.ParamByNAme('entrada')."VALOR DE LA VARIABLE DE LA CONVERSION DE DATOS";
Query2.ExecSQL;
Query1.Next;

El ultimo next, hace que avance el RowSelect en el Grid, este me devuelve el codigo de la materia y por ende a partir de este + No_Control, puedo actualizar la calificacion de dicha materia seleccionada en el PERIODO1...

Se que es algo bastante....arcaico.....dentro de lo ARCAICO y lo ARCAICO...... pero ps bueno....no se mucho de esto....
además, creo que es como aprendemos a no cagarla tanto (perdon por las palabrotas, pero me siento frustrado ).....

Finalmente, creo que he de aprender un metodo menos estúpido de almacenar los datos salvaguardando la IR......
__________________
"...Ayer Bastaba un Sueño..."
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
Ayuda filtro tabla Access con ADO jcheco Conexión con bases de datos 4 19-04-2006 10:30:54
Lookup de tabla con filtro elmurray C++ Builder 2 31-01-2005 16:43:39
Trigger para actualizar el id de una tabla Choclito Firebird e Interbase 2 13-07-2004 20:46:38
Añadir/modificar Regs. En Tabla Con Filtro txuseibar Conexión con bases de datos 5 10-10-2003 17:05:21
Como filtro una tabla? kia Conexión con bases de datos 17 16-08-2003 20:26:26


La franja horaria es GMT +2. Ahora son las 16:09:11.


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