Hola Angel.
Solo una sugerencia para no redundar el código del
TIBSQL:
Código PHP:
void execIBSQL(TIBSQL *isq, String strSQL)
{
if (!isq->Transaction->InTransaction)
isq->Transaction->StartTransaction();
isq->SQL->Text = strSQL;
try {
isq->ExecQuery();
isq->Transaction->Commit();
} catch(...) {
isq->Transaction->Rollback();
}
}
...
{
TIBQuery *qy = static_cast<TIBQuery*>(IBQuery1);
qy->Close();
qy->SQL->Clear();
qy->SQL->Add("SELECT RDB$GENERATOR_ID FROM RDB$GENERATORS");
qy->SQL->Add("WHERE RDB$GENERATOR_NAME = :GEN");
qy->ParamByName("GEN")->AsString = "G_POBLACION";
qy->Open();
if (qy->IsEmpty())
execIBSQL(IBSQL1, "CREATE SEQUENCE G_POBLACION");
qy->Close();
qy->SQL->Text = "SELECT MAX(CODIGO) AS MAXIMO FROM POBLACION";
qy->Open();
execIBSQL(IBSQL1, String("ALTER SEQUENCE G_POBLACION RESTART WITH ") +
qy->FieldByName("MAXIMO")->AsString);
}
Saludos