Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-08-2008
radge radge is offline
Miembro
 
Registrado: may 2008
Posts: 147
Poder: 16
radge Va por buen camino
Problemas de escritura y demas que no consigo ver

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
             // 1 unitat , fiquem la data i l'introduim  a la BD
             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;






Responder Con Cita
  #2  
Antiguo 22-08-2008
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
eso quiere decir que estas tratando de modificar un objeto que no ha sido creado o que ha sido destruido.
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #3  
Antiguo 25-08-2008
radge radge is offline
Miembro
 
Registrado: may 2008
Posts: 147
Poder: 16
radge Va por buen camino
El problema que tengo es que cuando me salta la excepción no me salta al debug del delphi , por lo que no se por donde cojer el error.

Alguna pista ?

gracias radge
Responder Con Cita
  #4  
Antiguo 26-08-2008
radge radge is offline
Miembro
 
Registrado: may 2008
Posts: 147
Poder: 16
radge Va por buen camino
He probado a substituir el

freeandnil(qry) por

Qry.free;


Pero sigue dando los errores de escritura.

salu2 radge
Responder Con Cita
  #5  
Antiguo 26-08-2008
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
una forma de saber es que antes de utilizar los objetos que se destruyen compruebes que esten creados con la funcion Assigned a ver si estan en memoria...
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #6  
Antiguo 26-08-2008
radge radge is offline
Miembro
 
Registrado: may 2008
Posts: 147
Poder: 16
radge Va por buen camino
De hecho como veis solo tengo una función al cual le he puesto el assigned y siempre me da que si ,cada vez que entra a ella asi k bien.

Pero dentro del fieldchanged ese "enorme" nido de "if" que si os fijais solo son estructuras condicionales con SQL dentro no hago nada mas.

Pues creo la query al principio del todo y la destruyo al final.
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
Pasar demas datos de un DBGRID a TEDIT's Ericato Varios 5 09-03-2007 17:44:05
memorias y hd y demas... diniremix Varios 1 04-05-2006 09:25:19
que tal es el delphi8 y demas....??? famcd Varios 1 06-02-2006 18:24:01
Dispositivos (bluetooth i demás) Descendents Varios 0 11-12-2003 11:20:21


La franja horaria es GMT +2. Ahora son las 21:21:36.


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