FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
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..."
|
#2
|
||||
|
||||
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. |
#3
|
||||
|
||||
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..."
|
#4
|
||||
|
||||
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..."
|
|
|
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 |
|