Ver Mensaje Individual
  #3  
Antiguo 16-02-2017
gorsan gorsan is offline
Miembro
 
Registrado: jun 2003
Ubicación: Alcala de Henares (Madrid)
Posts: 87
Reputación: 21
gorsan Va por buen camino
Hola de nuevo. Gracias por la respuesta.
Respecto a lo que me dices que haga. Primero he quitado las dos estructuras with y sigue dando el mismo error en la ejecución del commit. Luego he quitado todo y he dejado solo las sentencias relativas a la creación de la tabla y sigue dando el mismo error:

Código Delphi [-]
procedure TDMVentanilla.CreateTable(const TableName1: string);
begin
          IBQuery2.Close;
          IBQuery2.DataBase:=DMPrincipal.IBDB;
          IBQuery2.Transaction:=DMVentanilla.IBTLocal_Ventanilla;
          IBQuery2.SQL.Clear;
          IBQuery2.SQL.Add('CREATE TABLE '+'"'+TableName1+'"' +'(');
          IBQuery2.SQL.Add('VNIS VARCHAR(10) NOT NULL,');
          IBQuery2.SQL.Add('VNUM VARCHAR(20) NOT NULL,');{identificador del visitante que podrá ser DNI, NIE, PASAPORTE, etc}
          IBQuery2.SQL.Add('APELLIDO1 VARCHAR(50) NOT NULL,');
          IBQuery2.SQL.Add('APELLIDO2 VARCHAR(50),');
          IBQuery2.SQL.Add('VNOMBRE VARCHAR(30) NOT NULL,');
          IBQuery2.SQL.Add('VINCULACION VARCHAR(50) NOT NULL,');
          IBQuery2.SQL.Add('OBSERVACIONES BLOB SUB_TYPE TEXT SEGMENT SIZE 80,');
          IBQuery2.SQL.Add('PRIMARY KEY(VNIS),');
          IBQuery2.SQL.Add('CONSTRAINT '+'"'+'FK_'+TableName1+'"'+' FOREIGN KEY (VNIS) REFERENCES INTERNOS (NIS) ON DELETE CASCADE');
          IBQuery2.SQL.Add(')');
          IBQuery2.ExecSQL;
          DMVentanilla.IBTLocal_Ventanilla.Commit;
          DMVentanilla.IBTLocal_Ventanilla.StartTransaction;
end;

Tendrá que haber alguna manera de crear una tabla en tiempo de ejecución con clave foranea pero no se como.

Muchas gracias.
Responder Con Cita