Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #22  
Antiguo 19-05-2010
sur-se sur-se is offline
Miembro
 
Registrado: may 2003
Posts: 212
Poder: 22
sur-se Va por buen camino
Bueno, el tema del borrado de la tabla. No sé si debería ir en otro hilo, pero bueno, como salió aquí, pues a ver si Donald puede ayudarme, o algún otro compañero. Es un ejemplo sencillo sin controles de errores ni similar. Es para que lo veáis.

Coloco en la pantalla 5 botones:
button1 --> conectar con la Bd
button5 --> desconectar de la bd
button3 --> crear un tabla y commit
button2 --> ejecutar proceso de inserts y commit
button4 --> borrar la tabla creada commit

Un label1 para poner un texto.

En pantalla los componentes fibplus:
FIBdatabase para conectar con la BD
una pareja fibtransaction1/fibquery1
otra pareja fibtransaction2/fibquery2

Código:
procedure TForm1.Button1Click(Sender: TObject);
begin
     pFIBDatabase1.Connected:=true;
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
     pFIBDatabase1.Connected:=false;
end;

procedure TForm1.pFIBDatabase1AfterConnect(Sender: TObject);
begin
     label1.caption:='Conectada';
end;

procedure TForm1.pFIBDatabase1AfterDisconnect(Sender: TObject);
begin
     label1.caption:='Desconectado';
end;

procedure TForm1.Button2Click(Sender: TObject);
var i:integer;
begin
     pFIBTransaction2.StartTransaction;
     with pFIBQuery2 do
     begin
          close;
          sql.clear;
          sql.add('INSERT INTO TMPPRUEBA( C1, C2) VALUES (:c1, :c2)');
          Prepare;
          for i:=1 to 100 do
          begin
               ParamByName('c1').value:=i;
               ParamByName('c2').value:=i;
               ExecQuery;
          end;
          close;

     end;
     pFIBTransaction2.Commit;
     showmessage('Terminado');
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
     pFIBTransaction1.StartTransaction;
     with pFIBQuery1 do
     begin
          close;
          sql.clear;
          sql.Add('CREATE TABLE TMPPRUEBA ( C1 INTEGER, C2 INTEGER )');
          ExecQuery;
     end;
     pFIBTransaction1.Commit;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
     pFIBTransaction1.StartTransaction;
     with pFIBQuery1 do
     begin
          close;
          sql.clear;
          sql.Add('DROP TABLE TMPPRUEBA ');
          ExecQuery;
     end;
     pFIBTransaction1.Commit;
end;
Se conecta con la Bd, se crea la tabla, se ejectua el proceso, se borra la tabla.
Si el servidor es 1.5, funciona bien. Si es 2.x al borrar la tabla da un error de "object metadata in use".
Todo tiene sus commits correspondientes.
En 2.x, después de crear y ejectuar, si desconecto de la bd y vuelvo a conectar ya puedo borrarla.
Un saludo.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Dlephi 6 - Windows 7 - SQL Server 2008 andresu723 MS SQL Server 0 14-04-2010 16:33:50
Instalacion de Servicio Windows Server 2008 genius Varios 2 27-12-2009 23:44:04
Problema DBExpress en Windows Server 2008 cmagno Conexión con bases de datos 0 12-02-2009 14:39:11
firebird y .net 2008 voldemmor .NET 0 27-11-2008 17:15:54
No más Windows XP a partir de 2008 kinobi Noticias 15 17-04-2007 19:57:13


La franja horaria es GMT +2. Ahora son las 15:48:38.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi