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 |
|