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 11-03-2010
aanil aanil is offline
Miembro
 
Registrado: abr 2006
Posts: 155
Poder: 19
aanil Va por buen camino
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..
Responder Con Cita
  #2  
Antiguo 11-03-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
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
Responder Con Cita
  #3  
Antiguo 11-03-2010
aanil aanil is offline
Miembro
 
Registrado: abr 2006
Posts: 155
Poder: 19
aanil Va por buen camino
Hola Caral

Este es el codigo.

Código Delphi [-]
if radioButton1.Checked = true then
begin
   with datam.Query1 do begin;

close;
sql.Clear;
sql.Add('select NOMBRES,MATRICULA,A1 from 20092');
sql.Add('where clave ='+quotedstr(combobox1.Text));
sql.Add(   'order by nombres asc');

open;
edit;

end;
end;

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.
Responder Con Cita
  #4  
Antiguo 12-03-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
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.
Código Delphi [-]
if radioButton1.Checked = true then
begin
   with datam.Query1 do begin;
close;
sql.Text:= 'select NOMBRES, MATRICULA, A1 from 20092'+
           'where clave ='+quotedstr(combobox1.Text)+
           'order by NOMBRES asc';
open;
edit;

end;
end;
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
Código Delphi [-]
if radioButton1.Checked = true then
begin
   with datam.Query1 do begin;
close;
sql.Text:= 'select * from 20092'+
           'where clave ='+quotedstr(combobox1.Text)+
           'order by NOMBRES asc';
open;
edit;

end;
end;
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
Responder Con Cita
  #5  
Antiguo 12-03-2010
aanil aanil is offline
Miembro
 
Registrado: abr 2006
Posts: 155
Poder: 19
aanil Va por buen camino
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:

Código SQL [-]
sql.Add('select NOMBRES,MATRICULA,A1 from 20092');
sql.Add('where clave ='+quotedstr(combobox1.Text));
sql.Add(   'order by nombres asc');

Ahora le agregué el campo clave asi:

Código SQL [-]
sql.Add('select NOMBRES,MATRICULA,CLAVE,A1 from 20092');
sql.Add('where clave ='+quotedstr(combobox1.Text));
sql.Add(   'order by nombres asc');

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..
Responder Con Cita
  #6  
Antiguo 12-03-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
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
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
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


La franja horaria es GMT +2. Ahora son las 02:12:23.


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