![]() |
Actualizar tabla
Hola a todos,
Tengo el siguiente problema y es que necesito actualizar los datos en una tbl pero el procedimiento que tengo solo lo hace con el primer registro, que error tengo? Código:
DmProcedimientos.QTerminarSolicitudes.params[0].assmallint := strtoint(DBENumeroSolicitud.text);; |
El problema está en que estás recorriendo un DataSet y actualizando en otro.
Puedes explicar lo que es QTerminarSolicitudes y TblSolicituDiarios para ayudarte mejor, sobre todo si están relacionados de alguna manera. |
Ese bucle que haces es muy costoso, es más rápido una consulta de este tipo:
con eso actualizarás todos los registros de la tabla solicitudDiarios. Busca un manual de Sql si tienes ansiedad ;) :cool: |
Siempre graba en el mismo registro
Hola, aun tengo problemas con guardar en tablas :confused:
Lo que pasa es lo siguiente: Pretendo que cuando un elemento es seleccionado de un DBLookupComboBox este se grabe en la TblEnsamble y visualice los datos de este dato en un TDBGrid, asi que hago lo siguiente Código:
procedure TFrmOrdenProceso.DBLOrdenCloseUp(Sender: TObject); Espero haberme explicado bien al igual que espero que me puedan colaborar, de ante mano muchas gracias:p |
Yo no usaría el evento CloseUp, ya que el usuario puede equivocarse con facilidad y grabar más registros de los que realmente quiere. Pondría un botón guardar.
Es lógico que solo guarde 1 registro, porque haces un TblEnsamble.edit, es decir, Editar el registro actual de la tabla Ensamble. Tendrás que hacer un TBlEnsamble.Insert o Append para añadir un registro nuevo al presionar el botón que dije al principio. Para que el Grid muestre los datos, debes hacer una relación Maestro-detalle. Hay varias formas de hacerlo. Busca en el foro y si tienes dudas las comentas. Saludos |
Visualización de los datos
Hola,
Lepe tenias toda la razón cambie el edit por el insert :o y ahora guarda todos los datos pero tambien hice la relación maestro-detalle pero el TDBGrid solo me muestra un registro (el segundo dato que ingreso no inserta en el TDBGrid los datos que se ingresan). Que puedo mirar para que este TDBGrid muestre cada uno de los datos que el usuario esta ingresando? (El DataSource del TDBGrid es una vista esto influye en algo?). Y pues la parte del control de registros a grabar la pensaba manejar con un TDBNavigator, la idea es que visualice los datos y si alguno no va lo quita. |
Bueno ya revise de nuevo y efectivamente hice la relacion del cod de la vista con el cod de la otra tabla, pero aun asi sigue sin mostrarme los datos, y pues no estoy usando commit...¿que mas podra ser?
Muchas gracias por tu ayuda |
Lo primero es asegurarse que los registros que se dan de alta, forma parte de la relación Maestro-Detalle. En dicha relación siempre hay un campo en común en el Maestro y Detalle. Si olvidas asignar ese campo en el detalle, el registro no formará parte de la Relación y nunca aparecerá en pantalla (aunque puede estar en la tabla guardado en la tabla detalles).
Otra cosa que puede estar fallando es el tipo de transacción que hagas, ya que usas vistas, me parece un motor cliente/servidor, y si aquí usas Commit, los cambios no se reflejan hasta cerrar la consulta y volverla a abrir. Saludos. |
La franja horaria es GMT +2. Ahora son las 22:58:02. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi