![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#13
|
|||
|
|||
|
Perdón por el retraso
He tenido que confeccionar un código nuevo porque tenía el otro empotrado en toda la aplicación y me parecía muy difícil de poner todo.
Ahí va la unidad nueva entera: Y gracias de antemano por la contestación. Un saludo. unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, Button2011, IBDataBase, IBCustomDataSet; type THilo = class(TThread) private DataBase: TIBDataBase; Tabla: TIBDataSet; procedure ActualizaMemo; public CadenaMostrar: string; constructor Create( Suspendido: Boolean ); procedure Execute; override; end; type THPrueba = class(TForm) Button20111: TButton2011; Memo1: TMemo; procedure Button20111Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var HPrueba: THPrueba; implementation {$R *.DFM} procedure THilo.Execute; begin // Aqui no tengo mu claro lo que tengo que poner { while Self.Terminated = False do Self.Synchronize;} end; constructor THilo.Create( Suspendido: Boolean ); begin inherited Create( True ); // Quizas tuviera que crear un objeto TList con un database, transaction y tabla // para cada ejecución del hilo DataBase := TIBDataBase.Create( nil ); DataBase.DataBaseName := 'C:\DATOS\BASEDATOS.FDB'; DataBase.LoginPrompt := False; DataBase.Params.Clear; DataBase.Params.Add( 'user_name=sysdba' ); DataBase.Params.Add( 'password=masterkey' ); DataBase.Connected := True; // Tabla := TIBDataSet.Create( nil ); Tabla.DataBase := DataBase; Tabla.Transaction := TIBTransaction.Create( nil ); Tabla.Transaction.DefaultDataBase := DataBase; Tabla.Transaction.Params.Clear; Tabla.Transaction.Params.Add( 'read_committed' ); Tabla.Transaction.Params.Add( 'rec_version' ); Tabla.Transaction.Params.Add( 'nowait' ); Tabla.Transaction.StartTransaction; Tabla.SelectSQL.Clear; Tabla.SelectSQL.Add( 'select Codigo, Denominacion from Apuntes' ); Tabla.SelectSQL.Add( 'where Periodo = 2010' ); Tabla.Active := True; while not Tabla.Eof do begin CadenaMostrar := Tabla.Fields[ 0 ].AsString + ' ' + Tabla.Fields[ 1 ].AsString; Synchronize( ActualizaMemo ); Tabla.Next; end; end; procedure THilo.ActualizaMemo; begin HPrueba.Memo1.Lines.Add( CadenaMostrar ); end; procedure THPrueba.Button20111Click(Sender: TObject); var Hilo: THilo; begin Hilo := THilo.Create( True ); Hilo.Execute; Hilo := THilo.Create( True ); Hilo.Execute; end; end. |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| threads en dbExpress | pborges36 | Conexión con bases de datos | 5 | 21-12-2010 16:18:47 |
| Firebird AND Threads | Abel Garcia | Firebird e Interbase | 21 | 19-03-2008 05:07:21 |
| uso de threads | JULIPO | API de Windows | 2 | 25-07-2007 16:09:06 |
| Bloqueo Ibx Firebird AND threads | Abel Garcia | Firebird e Interbase | 3 | 26-02-2007 14:02:27 |
|