list index out of bounds (0)

PARRAPARICIO
20 de Noviembre del 2008
alguien que me pueda decir por favor lo que esta pasando este es el error, estoy creando un componente tibdatabase,tibquery,tibtransaction, todo funciona bien pero cuando finaliza la aplicacion da el siguiente mensage "list index out of bounds (0)" el error lo da cuando se libera el tibquery, cualquiera que me pueda ayudar en este error se lo agradecere


aqui va el codigo


DBA := TpFIBDatabase.Create(application);
TRN := TpFIBTransaction.Create(application);
VERSION_ESTRUCTURA := TpFIBDataSet.Create(application);

try
DBA.DBName := ruta;
DBA.ConnectParams.UserName := 'sysdba';
DBA.ConnectParams.Password := 'masterkey';
DBA.DefaultTransaction := TRN;
DBA.Connected := True;
TRN.DefaultDatabase := DBA;
TRN.Active := True;
VERSION_ESTRUCTURA.Transaction := TRN;
VERSION_ESTRUCTURA.SQLs.SelectSQL.Add('SELECT DISTINCT RDB$RELATION_NAME FROM RDB$RELATION_FIELDS WHERE RDB$RELATION_NAME =''VERSION_ESTRUCTURA'' AND RDB$VIEW_CONTEXT IS NULL');
VERSION_ESTRUCTURA.Open;

if VERSION_ESTRUCTURA.RecordCount > 0 then
begin
VERSION_ESTRUCTURA.Close;
VERSION_ESTRUCTURA.sqls.SelectSQL.Clear;
end
else
begin
DatabaseError('No existe la Versi贸n de la base de datos');
exit;
end;

VERSION_ESTRUCTURA.SQLs.SelectSQL.Add('SELECT VERSION FROM VERSION_ESTRUCTURA');
VERSION_ESTRUCTURA.Open;
if VERSION_ESTRUCTURA.RecordCount > 0 then
begin
cVersion := VERSION_ESTRUCTURA.Fields[0].Value;
if cVersion >= '2.9.0.0' then
Version := true
end;
except
MessageDlg( 'Error al intentar abrir la conexi贸n de la base de datos. ' , mtError, [mbOK], 0);
end;
VERSION_ESTRUCTURA.Close;
IF TRN.InTransaction then
TRN.Rollback;

TRN.Free;
TRN:= nil;
//AQUI ES DONDE OCURRE EL ERROR
VERSION_ESTRUCTURA.Free;
VERSION_ESTRUCTURA:= nil;
DBA.Connected := false;

DBA.Free;
DBA := nil;

Alvarojess
20 de Noviembre del 2008
Intenta esto:

VERSION_ESTRUCTURA.Free;
VERSION_ESTRUCTURA:= nil;
TRN.Free;
TRN:= nil;

Si liberas pirmero TRN, a la hora de liberar ESTRUCTURA, te mandara un error por que no encuentra el indice del componente.