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);
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.