Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-12-2006
locorez locorez is offline
Registrado
 
Registrado: ene 2006
Posts: 4
Poder: 0
locorez Va por buen camino
error, el índice o la clave principal no puede tener un valor null

Hola,
tengo un pequeño problema con el programa y es el siguiente.
Tengo una query conectada a un grid:
Código SQL [-]
SELECT Stock.ID, Revistes.Revista, Revistes.Preu, Stock.Num, Stock.DataA, Stock.Quantitat, Revistes.Distribuidora
FROM Revistes INNER JOIN Stock ON Revistes.Codi_Barres = Stock.ID;
luego tengo este evento:
Código Delphi [-]
procedure TStock.adotblRevistesIDChange(Sender: TField);
begin
  adotblrevistesID.OnChange := nil;
  adoqry9.Close;
  adoqry9.SQL.Text := 'Select * from revistes where Codi_Barres = :codi';
  adoqry9.Parameters.ParamByName('codi').Value := adotblRevistes.FieldByName('ID').AsString;
  adoqry9.Open;
  adotblRevistes.FieldByName('Revista').AsString := adoqry9Revista.asstring;
  adotblRevistes.FieldByName('Preu').AsCurrency := adoqry9Preu.ascurrency;
  adotblRevistes.FieldByName('Distribuidora').AsString := adoqry9Distribuidora.asstring;
  adotblRevistes.FieldByName('DataA').Value := now;
  adotblRevistes.FieldByName('Num').AsString := Codicorrecte(adotblRevistes.fieldbyname('ID').asstring);
  //adoqry9.Close;
  if length(adotblRevistes.FieldByName('Num').AsString) > 13 then
    adotblRevistes.FieldByName('ID').AsString := copy(adotblRevistes.FieldByName('Num').AsString,0,13);
  adotblrevistesID.OnChange :=  adotblRevistesIDChange;
end;
Ahora explico de que va todo esto XD
El usuario tiene un dbgrid donde solo estan en readonly false el ID y la cantidad. El ID es el código de la revista. Bien, una vez el usuario introduce el codigo de barras de la revista, salta el evento que antes he escrito y hago una consulta, esta:
Código SQL [-]
select * from Revistes where codi_Barres = :codi
Le paso el parametro ID y una vez he identificado la revista con la consulta, relleno los campos con la información. Una vez hecho esto el usuario solo debe de poner la cantidad y ya está. Pero no, a la hora de grabar los datos en la query me pone: "error, el índice o la clave principal no puede tener un valor null". Pero si cierro y vuelvo abrir, el registro, es decir, la revista nueva, ya estará en la tabla stock. No se porque ocurre y todo que funciona queda feo. Alguien me puede ayudar?
Saludos y gracias.

Se me olvidaba, todo y que en el codigo tengo puesto adotblRevistes es una query.

Última edición por locorez fecha: 14-12-2006 a las 01:50:08.
Responder Con Cita
 



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
Combobox con indice y valor Moises22 Conexión con bases de datos 8 21-09-2016 13:08:50
Valor Null tanto en tablas como en query Aprendiendo SQL 3 16-10-2006 11:49:14
Integridad sobre un campo que puede ser NULL gluglu Conexión con bases de datos 1 08-02-2005 12:11:45
Valor Null en campo float de un FasReport Romanosky Impresión 4 10-11-2004 17:56:04
Foreign key puede ser null? Firibiri Firebird e Interbase 4 03-10-2003 09:48:36


La franja horaria es GMT +2. Ahora son las 14:48:47.


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