Buenas tengo 1 formulario desde hace tiempo que me da errores de escritura y alguna vez "X" error de "Access violation at address 00000000"
hace tiempo ya pregunté aqui y me dieron algunas pistas , pero no lo he conseguido arreglar , ahora vuelvo a poner el codigo con algunos cambios que hize , pero sigue fallando.
Gracias , radge
Código Delphi
[-]
var
frmSupVision: TfrmSupVision;
Field_Sorted, Sort_Type, SQL_Base: string;
FlagE : integer;
implementation
uses ModuloDatos,UnidadesPedidoVenta, PrintPedidosSupervisados;
{$R *.DFM}
procedure TfrmSupVision.Combo_ClientesChange(Sender: TObject);
begin
if FlagE = 0 then
CodiClient := Combo_Clientes.Lookuptable.FieldByName('campo').asstring;
SQL_Base := 'Select XXX';
if (IntToStr(length(Combo_clientes.text)) > '0') then
SQL_Base := SQL_Base + ' XXXXXXXXXX ';
if (combobox1.text <> '') then
if combobox1.text = 'SI' then begin
SQL_Base := SQL_Base + ' XXXXXXXXXX ';
end
else if combobox1.text = 'NO' then begin
SQL_Base := SQL_Base + ' XXXXXXXXXX ';
end;
if Edit1.text <> '' then
SQL_Base := SQL_Base + ' XXXXXXXXXX ';
try
query_supvision.close;
query_supvision.SQL.Clear;
query_supvision.SQL.Add(SQL_Base);
query_supvision.open;
except
showmessage('Error al cargar los clientes');
end;
FlagE := 0;
end;
procedure TfrmSupVision.wwDBGrid1FieldChanged(Sender: TObject;
Field: TField);
Var
Qry: TQuery;
cadenaSQL,FilaCheck,Lin_Codi,Alb_Codi,Per_Codi,accountnum,dataareaid ,
varDades , varUnitatsRestants : string;
Cantidad , UnitatsServidesBD , botoseleccionat : Integer ;
Marca : TBookMarkStr;
formulari : TfrmUnidadesPedidoVenta;
begin
try
Lin_Codi := query_supvision.FieldbyName('LIN_Codi').AsString;
Alb_Codi := query_supvision.FieldbyName('ALB_Codi').AsString;
Per_Codi := query_supvision.FieldbyName('Per_Codi').AsString;
Accountnum := query_supvision.FieldbyName('accountnum').AsString;
Dataareaid := query_supvision.FieldbyName('dataareaid').AsString;
Cantidad := query_supvision.FieldbyName('Cantidad').asinteger;
UnitatsServidesBD := query_supvision.FieldbyName('Unitats_Servides').asinteger;
except
showmessage('No se han podido cargar los datos del albarán');
query_supvision.cancel;
end;
Qry := TQuery.Create (nil);
Qry.DatabaseName := Modulo_Datos.XXXXX.DatabaseName;
Qry.Close;
Qry.SQL.Clear;
if ((Lin_Codi <> '') and (Dataareaid <> '') and (Alb_Codi <> '')
and (Per_Codi <> '') and (Accountnum <> '')) then begin
if (combobox1.text = 'TODOS') then begin
try Marca := query_supvision.Bookmark;
except query_supvision.cancel; end;
end;
try
FilaCheck := wwDBGrid1.GetFieldValue(7);
except
showmessage('Hubo un error cargando los datos del formulario');
query_supvision.close;
query_supvision.open;
end;
if (FilaCheck = 'S') then begin
if (Cantidad = 1) then begin
Qry.SQL.Clear;
cadenaSQL := 'update XXXXXXX';
Qry.SQL.Add(cadenaSQL);
Qry.ExecSQL;
Qry.SQL.Clear;
cadenaSQL := 'Insert into XXXXXX';
Qry.SQL.Add(cadenaSQL);
Qry.ExecSQL;
sleep(100);
query_supvision.Close;
query_supvision.Open;
end
else begin
Qry.SQL.Clear;
cadenaSQL := 'update XXXXXXXXXXX';
Qry.SQL.Add(cadenaSQL);
Qry.ExecSQL;
Qry.SQL.Clear;
cadenaSQL := 'Insert into XXXXXXXXX';
Qry.SQL.Add(cadenaSQL);
Qry.ExecSQL;
query_supvision.Close;
query_supvision.Open;
end;
end
else if (FilaCheck = 'N') then
if (Cantidad = UnitatsServidesBD) then begin
botoseleccionat := MessageDlg('Estas seguro XXXXXX',mtCustom,[mbYes,mbNo], 0);
if botoseleccionat = mrYes then begin
Qry.SQL.Clear;
cadenaSQL := 'update XXXXXX';
Qry.SQL.Add(cadenaSQL);
Qry.ExecSQL;
Qry.SQL.Clear;
cadenaSQL := 'update XXXXXXXX';
Qry.SQL.Add(cadenaSQL);
Qry.ExecSQL;
query_supvision.Close;
query_supvision.Open;
end
else begin
query_supvision.Cancel;
end;
end;
freeandnil(qry);
end
else begin
showmessage('Este cliente no tiene más albaranes por editar');
try
query_supvision.Cancel;
except
;
end;
end;
if (combobox1.text = 'TODOS') then begin
try
query_supvision.Bookmark := Marca;
except
query_supvision.close;
query_supvision.cancel;
end;
end;
end;