Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MySQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-09-2018
Avatar de JoAnCa
JoAnCa JoAnCa is offline
Miembro
 
Registrado: jul 2005
Ubicación: Cuba
Posts: 435
Poder: 19
JoAnCa Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Tampoco entiendo lo que dices sobre que el problema lo da el "datagrid". Un dbgrid es una "ventana" que muestra los datos de un dataset, mediante un datasource que hace de intermediario.
Las consultas, cálculos, y todo lo que quieras hacer con los datos es en el dataset. El dbgrid es solamente una presentación de esos datos devueltos.
No puede haber un problema en el datagrid.

No le hecho la culpa al datagrid, en realidad quise decir en el dataset
__________________
La hora de acción no es hora de aprender, es necesario haber aprendido antes
Responder Con Cita
  #2  
Antiguo 28-09-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por JoAnCa Ver Mensaje
No le hecho la culpa al datagrid, en realidad quise decir en el dataset
Bueno, es lo que has dicho, y nosotros solamente podemos guiarnos de lo que dices tú y todos los que plantean sus dudas. Ojalá pudiésemos conectar a tu ordenador y ayudar a buscar el problema.
Responder Con Cita
  #3  
Antiguo 28-09-2018
Avatar de JoAnCa
JoAnCa JoAnCa is offline
Miembro
 
Registrado: jul 2005
Ubicación: Cuba
Posts: 435
Poder: 19
JoAnCa Va por buen camino
Al parecer el código está bien, pues funciona bien en la mayoria de los casos


Todo me parece indicar que es como si algun registro se quedara "colgado" o en uso y por eso no deja guardarlo con los nuevos valores


Los dos datatables que uso: fdtPrenomGTDir y fdtPrenomGTCons se basan en la misma vista de MySQL, la diferencia está en el filtro que uso para cada uno, para separar la direccion del grupo de los consultores


La vista en mysql la conformo con la relacion de las tablas prenomina y trabajadores, para que me muestre el nombre del trabajador en el datagrid, en lugar de su ID


Como hago los calculos, se puede ver en el codigo que publiqué


Podria ser que el error esté en la forma que lo estoy haciendo?


Alguna idea de otra forma de hacerlo?
__________________
La hora de acción no es hora de aprender, es necesario haber aprendido antes
Responder Con Cita
  #4  
Antiguo 28-09-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
A ver, es que no tenemos información para poder ayudarte fácilmente.
Hay cosas que tenemos que preguntar, aunque sean obvias, porque no lo has confirmado, por ejemplo, dice el mensaje de error que es posible que la tabla no tenga una primary key, ¿es así?
Responder Con Cita
  #5  
Antiguo 29-09-2018
Avatar de JoAnCa
JoAnCa JoAnCa is offline
Miembro
 
Registrado: jul 2005
Ubicación: Cuba
Posts: 435
Poder: 19
JoAnCa Va por buen camino
Pues eso es lo desconcertante del error, de las posibles causas que da, no veo que sea esa
La tabla si tiene clave primaria, y tambien se las paso a las consultas, así que no debe ser por ausencia de llave primaria
__________________
La hora de acción no es hora de aprender, es necesario haber aprendido antes
Responder Con Cita
  #6  
Antiguo 29-09-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Y qué es fdtPrenomGTDir?
Responder Con Cita
  #7  
Antiguo 29-09-2018
orodriguezca orodriguezca is offline
Miembro
 
Registrado: ene 2009
Posts: 221
Poder: 16
orodriguezca Va por buen camino
En mi experiencia, las veces que he tenido ese error, es porque FireDac no tiene la información suficiente o correcta para actualizar la información de los registros de la base de datos, esto es, FireDac trata de hacer un update sobre un registro pero el registro, según FirecDac, ya no existe. Cosas para revisar en estos casos:

1. Si la tabla tiene llave primaría verificar si en un FDQuery o FDTable está correctamente asignada la propiedad UpdateOptions.KeyFields: deberia tenes los campos que hacen parte de la llave primaria.

2. Verificar, en un FDQuery o FDTable la propiedad UpdateOptions.updateMode: Si la tabla tiene llave primaria esta propiedad debería establecerse en upWhereKeyOnly .

3. En el inspector de objetos, por cada campo de la llave primaria, verificar las propiedades ProviderFlags.pfInupdate, ProviderFlags.pfInWhere.

Generalmente FireDac configura "el solito", sin que nosotros tengamos que hacer nada, todos estos atributos correctamente en tiempo de diseño con solo escribir la consulta SQL; pero en ocasiones FireDac requiere de nuestra ayuda para hacer su trabajo, ejemplo: Cuando la consulta tiene joins, Cuando la consulta se hace sobre una vista, cuando la consulta se hace sobre un procedimiento almacenado, cuando la tabla no tiene definda una primary key sino indices únicos, Cuando el DBA restringe el acceso a metadatos y FireDac no puede tener acceso a información sobre la definición de la tabla, etc.

Espero que lo anterior te sirva de orientación para solucionar tu problema.
Responder Con Cita
  #8  
Antiguo 29-09-2018
Avatar de JoAnCa
JoAnCa JoAnCa is offline
Miembro
 
Registrado: jul 2005
Ubicación: Cuba
Posts: 435
Poder: 19
JoAnCa Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
¿Y qué es fdtPrenomGTDir?
fdtPrenomGTDir y fdtPrenomGTCons son controles TFDTable, tablas de FireDAC

fdtPrenomGTDir se basa en una vista de mysql, y la filtro por la categoria de la direccion y fdtPrenomGTCons es lo mismo, pero filtrandola por la categoria de los consultores

La vista de mysql es como ya dije, la tabla prenomina y trabajadores unidas por su relacion uno a muchos
__________________
La hora de acción no es hora de aprender, es necesario haber aprendido antes
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
MySQL con Firedac muli Desarrollo en Delphi para Android 4 17-05-2018 19:35:19
Firedac y tabla temporal Mysql lbidi Conexión con bases de datos 3 21-02-2018 19:47:54
Firedac pierde coneccion a MYSQL lbidi Varios 3 24-06-2016 18:11:18
Conectar a MySql con Firedac lbidi Conexión con bases de datos 3 24-05-2016 22:03:07
Firedac vs Acceso Directo a MySQl F3niX Conexión con bases de datos 3 16-02-2015 08:33:30


La franja horaria es GMT +2. Ahora son las 13:42:58.


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