2012-04-18 13 views
7

Tengo Delphi XE Professional. Viene con una buena cantidad de material DBX, incluida la unidad DBXPool que contiene el soporte de agrupación de conexiones, pero no cuenta con el soporte completo de DBX que viene en XE Enterprise. En particular, mucho del soporte de tiempo de diseño no está allí.¿Cómo configuro la agrupación de conexiones DBX en el código?

No me importa en particular. He podido hacer todo lo que he necesitado sin él, hasta que necesité la agrupación de conexiones. Ahora trato de hacer que eso funcione y no puedo entender cómo hacerlo funcionar. Puedo agregar DBXPool a mi programa y verificar que se inicialice, pero cuando empiezo a hacer solicitudes de bases de datos, nunca se llama al TDBXPoolConnection.Create.

Aquí está mi código de configuración para la conexión, en el controlador de eventos BeforeConnect. Alguien sabe lo que estoy haciendo mal y cómo hacerlo bien?

procedure TMyDataModule.connectionBeforeConnect(Sender: TObject); 
begin 
    connection.DriverName := 'Firebird'; 
    connection.Params.Values['User_Name'] := FUserName; 
    connection.Params.Values['Password'] := FPassword; 
    connection.Params.Values['Database'] := FDatabasePath; 
    connection.Params.Values['ServerCharSet'] := 'UTF8'; 
    connection.Params.values['DelegateName'] := 'DBXPool'; 
    connection.Params.values['DelegateConnection.MaxConnections'] := '32'; 
end; 

EDIT: En caso de que alguien viene a través de esto en el futuro y tiene el mismo problema, así es como tuve que configurarlo para que funcione bien. En lugar de las dos últimas líneas anteriores,

connection.Params.values['DelegateConnection'] := 'DBXPoolConnection'; 
connection.Params.values['DBXPoolConnection.DriverName'] := 'DBXPool'; 
connection.Params.values['DBXPoolConnection.MaxConnections'] := '32'; 

¡Gracias a Sertac por ponerme en el camino correcto!

+0

¿Es posible que mientras la unidad se envía con XE pro, no es funcional (porque las librerías DBX/dlls no habilitan esta característica en este SKU?) –

+0

Nunca he usado el anillado similar pero de lo que 'v read Recuerdo un parámetro' DelegateConnection '. [Aquí] (http://docwiki.embarcadero.com/RADStudio/en/Connection_Pooling_%28Delegate_Drivers_tutorial%29) dice que se le debe asignar 'DBXPoolConnection'. –

+0

@Sertac: ¡Ajá! Eso es lo que me estaba perdiendo. Lo había leído, pero no estaba muy seguro de qué partes se aplicaban a dónde. Lo tengo trabajando ahora. ¡Gracias! Si publica eso como respuesta, lo aceptaré. –

Respuesta

Cuestiones relacionadas