list index out of bounds (0)
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;
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;
