![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#22
|
|||
|
|||
|
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;
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. |
|
|
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 |
|