FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Informacion de columna clave insuficiente
Hola a todos.
A que se deberá que cuando escribo directamente en el dbGrid un dato, después de escribir el mismo dato en varios registros seguidos sale el siguiente mensaje " Informacion de columna clave insuficiente o incorrecta; demasiadas filas afectadas por la actualizacion" Estoy usando una tabla de access Gracias.. |
#2
|
||||
|
||||
Hola
Depende de a que este conectado el dbgrid y de que tipo de datos traiga. Lo que esta diciendo es que se están modificando registros que por alguna razón no se pueden modificar. Saludos PD: También podría ser algo mas, es difícil sin ver el código, por lo menos para mi.
__________________
Siempre Novato |
#3
|
|||
|
|||
Hola Caral
Este es el codigo.
Hago esta consulta que me lista un curso de la clase, el campo A1, es donde voy a escribir P, A o E, ( Presente, Ausente o Excusa). Esto lo hago directamente en la columna A1 del DbGrid, claro que pongo el query en modo edit, luego cuando termino de pasar la asistencia hago un post. Tiene dos botones: Editar y Grabar. Gracias. |
#4
|
||||
|
||||
Hola
Para mi uno de los problemas puede ser el ADD. No se por que pero aveces también me ha dado problemas por eso trato de no usarlo salvo casos especiales. El código no parece tener ningún problema, por eso yo usaría Text, por si acaso. El único problema que le podría ver es si intentas afectar o modificar alguna parte de la información y no llamas a toda la tabla osea Si no la llamas así tendrías que hacer un UpDate y modificar los campos. Recuerda que aun que llames a todos los campos puedes mostrar solo los que desees. Saludos
__________________
Siempre Novato |
#5
|
|||
|
|||
Hola
Ya encontré el por que del problema: Sucede que en mi tabla tengo un estudiante que se llama JOSE LUIS FERRER, con matricula 778734 y cursa la asignatura Historia de la Educación I, ese mismo estudiante esta en la misma tabla, pero también cursa otra asignatura con el mismo profesor que se llama Didáctica de las Ciencias Sociales. Cuando hago la consulta de la asignatura Historia de la Educación I el estudiante aparece en esa lista, y cuando le pongo la letra de presente, el programa no sabe si tambien tiene que actualizar el estudiante en la otra asignatura. Asi que acomodé el codigo de la siguiente manera, para distinguir en la asignatura y asi dejó de producirme el error. Antes el codigo era asi:
Ahora le agregué el campo clave asi:
De todas manera tambien voy a probar tu sugerencia, pero no recuerdo como se hace cuando uno quiere que se vean algunos campos en el dbgrid, cuando uno dice SELECT * FROM TABLA, y solo se vean Nombres, Matricula, A1, ya sabes. Saludos.. |
#6
|
||||
|
||||
Hola
El dbgrid esta ligado al datasource que es el que esta ligado al query. Le das doble click al dbgrid y sale una pantalla, ahi le pones los campos que quieres que se vean. Saludos
__________________
Siempre Novato |
#7
|
|||
|
|||
Hola Caral.
Eso si lo he hecho muchas veces, lo que pasa es que cuando venga la próxima clase, para pasar la asistencia 2 (A2), lo que he hecho es
En la siguiente clase tengo: Y así sucesivamente hasta A10. Esto con el objetivo de que solo se vea el nombre, la matricula y la asistencia para hacer manualmente la actualización Por eso no lo quise hacer de la manera que tu me expone. Si hay otra forma? me lo hace saber. La que tengo ahora me acomoda bien. Saludos. |
#8
|
||||
|
||||
Hola
Si algo he aprendido es que con delphi se puede hacer casi todo, eso si, los que saben. No se si funciona, pero por ahi anda la cosa. Saludos
__________________
Siempre Novato |
#9
|
|||
|
|||
Hola.
Voy a probar eso que me dices: Esta es la forma como lo tengo
Y esta funcionando. Lo que se ve es muy largo, pero eso es lo que tengo. Saludos.. |
#10
|
||||
|
||||
Hola
Sabiendo que la sentencia SQL es string se puede hacer casi cualquier cosa, un ejemplo: De esta manera no se repite el codigo constantemente. Saludos
__________________
Siempre Novato |
#11
|
|||
|
|||
Gracias Caral
Este código esta mas claro, comodo y bien comprensible. Gracias.. |
#12
|
||||
|
||||
Hola
Recuerda que en tu caso prácticamente todo se repite y que lo que necesitas modificar es solamente el string del SQL, osea, tienes muchas alternativas. Otra, mas reducida: Y habrán mas opciones, la idea con esto es solamente que aprendamos a dividir un string. Saludos
__________________
Siempre Novato |
#13
|
||||
|
||||
Hola
Se nota que no tengo nada que hacer jejeje. Este codigo tal vez te parezca interesante, mira como se reduce todo: Siempre me acuerdo que el Maestro Neftali fue el que me lo enseño. Saludos
__________________
Siempre Novato |
#14
|
|||
|
|||
Hola Caral.
El penúltimo código lo copie y pegue y cuando lo corro dice este mensaje de error. s (falta operador) en la expresion de consulta 'A1from 20092 where clave = 'PED 411-04' orde by nombres asc'. El ultimo código también presenta un error aun mas grave. Saludos. |
#16
|
|||
|
|||
Hola Caral,
El último código que me pasaste cuando lo ejecuto dice: "Access violation at address 004E0576 in module 'Project1.exe'. Read of address 00000000." El antepenúltimo lo voy a observar y ver donde es que tiene el error de sintaxis. Luego te digo como me queda. Saludos.. |
#17
|
||||
|
||||
Hola
Todos los códigos los he hecho al aire, sin probarlos. La idea es que vieras las posibilidades, pero para que funcionen seguro que tienen alguno que otro problema. Usa el que funcione, los otros los puedes ir viendo y analizando. Saludos Pd: Recuerda que de esto no se casi nada, solo pretendo ayudar en lo que pueda, alguna que otra vez me sale bien.
__________________
Siempre Novato |
#18
|
|||
|
|||
Hola
Gracias por esa excelente ayuda, me sirve de estudio y para mi biblioteca de códigos. Bueno este hilo se puede cerrar, luego seguiré en busca de ayudas. Y te recuerdo Caral que eres un excelente y entusiasta orientador Saludos... |
#19
|
||||
|
||||
Hola
Para demostrarme a mi mismo que si se podía utilizar el ultimo código, (El mas pequeño de todos), hice un ejemplo sencillo. Este ejemplo tiene una BD Access, 1 tabla, 3 radiobuttons, 1 combobox, 1 edit, 1 boton, 1 DBGrid. Se selecciona la Clave del combobox, (es cargada de la BD). Se selecciona un RadioButton Se presiona el boton En el DBGrid se muestran los datos y el ultimo campo cambia tanto el titulo como la información. En el edit se podrá ver la sentencia SQL que genera todo este enredo Espero que te sirva de ejemplo, veras que en realidad es muy sencillo de entender. Saludos
__________________
Siempre Novato Última edición por Caral fecha: 15-03-2010 a las 16:59:52. |
#20
|
|||
|
|||
Hola Cara:
Esto si esta de maravilla, ya lo adapté a mi trabajo y me quedó perfecto. Gracias. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Hacer que una columna de un DbGrid aparezca distinta según valor | Aprendiendo | OOP | 11 | 30-11-2018 14:47:20 |
error de sql server "Informacion de columna clave insuficiente" | jhcaboverde | Conexión con bases de datos | 1 | 17-08-2007 19:40:31 |
Informacion de columna clave insuficiente para realizar la operacion update o refresh | Cabanyaler | MS SQL Server | 11 | 04-06-2007 13:25:04 |
informacion de columna clave insuficiente | vipernet | MS SQL Server | 6 | 07-09-2006 20:26:40 |
Extraer datos de una pagina en java que tiene clave (sabiendo la clave claro) ;) | kalimocho | Internet | 2 | 29-06-2005 05:11:24 |
|