Una pista:
El error desaparece cuando comento este bloque de código (en el que intento migrar una base de datos a InterBase): (si veis errores a parte del que no me deja ejecutar es porque no he podido hacerle un seguimiento) (la instrucción INSERT ya se que está incompleta, poe ejemplo)
void __fastcall TfrmBases::mnuInterBaseClick(TObject *Sender)
{
TIBDatabase *Bds = new TIBDatabase(this);
TIBTable *NuevaTabla = new TIBTable(this);
TStringList *Tablas = new TStringList();
TADOQuery *qryAux = new TADOQuery(this);
Screen->Cursor = crHourGlass;
//crear la Bds.
Bds->DatabaseName = "a:\\b.gdb";//frmBases->Base.SubString(1, Base.Length() - 3) + "gdb";
Bds->Params->Add("USER 'sysdba' PASSWORD 'masterkey' PAGE_SIZE 2048");
Bds->SQLDialect = 3;
Bds->CreateDatabase();
//Coger los nombres de las tablas
frmBases->cnnConexion->GetTableNames(Tablas, false);
qryAux->Connection = frmBases->cnnConexion;
//preparar las definiciones
NuevaTabla->Active = false;
NuevaTabla->Database = Bds;
NuevaTabla->FieldDefs->Clear();
for (int i = 0; !Tablas->Strings[i].IsEmpty(); i++){
NuevaTabla->TableName = Tablas->Strings[i];
//realizar una consulta para coger los datos que haya en la tabla y las definiciones
//de los campos
qryAux->Close();
qryAux->SQL->Clear();
qryAux->SQL->Add("SELECT * FROM " + Tablas->Strings[i]);
qryAux->Open();
//Crear los campos
//NuevaTabla->FieldDefs = qryAux->FieldDefs; //Esta instrucción no la permite
for (int j = 0; i < qryAux->FieldCount; j++){
NuevaTabla->FieldDefs->AddFieldDef();
NuevaTabla->FieldDefs->Items[j]->Name = qryAux->FieldDefs->Items[j]->Name;
NuevaTabla->FieldDefs->Items[j]->DataType = qryAux->FieldDefs->Items[j]->DataType;
NuevaTabla->FieldDefs->Items[j]->Size = qryAux->FieldDefs->Items[j]->Size;
NuevaTabla->FieldDefs->Items[j]->Required = qryAux->FieldDefs->Items[j]->Required;
}
NuevaTabla->CreateTable();
//pasar los datos, si hay
if (!qryAux->Recordset->Eof){
qryAux->Recordset->MoveFirst();
while (!qryAux->Eof){
qryAux->SQL->Clear();
qryAux->SQL->Add("INSERT INTO " + NuevaTabla->TableName + " VALUES(" + + ")");
qryAux->ExecSQL();
qryAux->Recordset->MoveNext();
}
}
}
Screen->Cursor = crDefault;
}