Ver Mensaje Individual
  #3  
Antiguo 16-12-2008
Cecilio Cecilio is offline
Miembro
 
Registrado: ago 2007
Posts: 140
Reputación: 17
Cecilio Va por buen camino
Esa es la parte que escribe la lista de nombres de campos. En el resto del código no se hace referencia a ese objeto, por eso lo libero nada más terminar.

De todas formas voy a poner el procedimiento completo.
Código Delphi [-]
procedure TForm1.Generico(tb: string);
var
   s: string;
   t: TextFile;
   n,v: integer;
   gs: TstringList;
   ibb: TIBquery;

begin

  AssignFile(t,destino.Text+tb+'.txt');
  rewrite(t);

 if not IBDatabase1.Connected then
  begin
    IBDatabase1.DatabaseName:=server.Text;
    ibDatabase1.Connected:=true;
  end;
  ibb:= TibQuery.Create(nil);
  ibb.Database:=Ibdatabase1;
  ibb.Transaction:=IbTransaction1;

  Ibb.SQL.Add('select * from '+tb);
  ibb.Open;
  ibb.First;
  ibb.Last;
  Progressbar1.Max:=Ibb.RecordCount;
  progressbar1.Position:=0;

  gs:=TstringList.Create;
  gs:=ibb.FieldList;
  s:='';
  for v:=0 to gs.Count-1 do
      s:=s+gs[v]+';';
  writeln(t,s);

  ibb.First;
  n:=0;
  while not ibb.Eof do
  begin

     s:='';
     for v:=0 to ibb.FieldCount-1 do
      s:=s+ibb.Fields.Fields[v].AsString+';';

     writeln(t,s);

     inc(n);
     progressbar1.Position:=n;
    ibb.Next;
  end;
closeFile(t);
ibb.Close;
ibb.Free;
//gs.Free;

end;
(en este, he probado a ponerlo al final y solo no da error cuando está comentado y no actua.)

El error es algo como: "Exeception class EAccessViolation with message "Access violation at adress 000000. Read of adress 000000. Proced stoped"
Lo genera el debuger, creo.
__________________
Saludos Cordiales.
------------------

Responder Con Cita