Cita:
Auxiliar->SQL->Text = "SELECT GEN_ID(ID_" + (fFacturas->Tag == 1 ? (String)"Tiquet" : (fFacturas->Tag == 2 ? (String)"Albaran" : (String)"Factura")) +
", 0) Valor FROM RDB$DATABASE";
|
Después de mucho batallar resulta que el problema, a pesar del mensaje de error, no estaba en la transacción: estaba en la forma de construir el query. En vez de hacerlo como está puesto lo hago así:
Código SQL
[-]Auxiliar->Close();
switch (fFactura->Tag)
{
case 1:
fMenu->Auxiliar->SQL->Text = "SELECT GEN_ID(ID_Tiquet, 0) Valor FROM RDB$DATABASE";
break;
case 2:
fMenu->Auxiliar->SQL->Text = "SELECT GEN_ID(ID_Albaran, 0) Valor FROM RDB$DATABASE";
break;
case 3:
fMenu->Auxiliar->SQL->Text = "SELECT GEN_ID(ID_Factura, 0) Valor FROM RDB$DATABASE";
break;
}
fMenu->Auxiliar->Open();
Y funciona perfectamente. Se ve que
fFacturas->Tag == 1 ?..., que siempre me ha funcionado bien, ha decidido que a partir de ahora ya no vale.