2010-01-12 16 views
5

Hice una pequeña aplicación que se conecta a un db mysql usando dbx. Funciona bien con mi servidor mysql local, pero se supone que funciona con un servidor remoto.Conexión dbx separada a un hilo

La conexión al servidor remoto toma unos segundos, lo que congela la aplicación.

Entonces mi pregunta es, ¿cómo puedo poner el código de conexión en un hilo diferente?

Tendré que pasar esa conexión al hilo principal de alguna manera, para que funcione el dbgrid que tengo en el formulario principal.

He leído que db cosas que trabajan en un hilo diferente deben tener sus propias conexiones. Entonces no estoy seguro de cómo hacer lo que quiero.

¿Alguna idea? ¿Algo que leer sobre el trabajo con servidores remotos?

Gracias.

Editar: Los componentes que estoy usando en el formulario son: TSQLConnection -> TSimpleDataSet> TDataSource> TDBGrid.

+0

¿Puede el usuario interactuar de manera útil con su programa mientras espera que se establezca la conexión? –

+0

Bueno, realmente no, tal vez debería haber un botón "Cancelar", pero no. Solo quiero que muestre un mensaje de "conexión" sin congelar la aplicación. – Mario

Respuesta

0

esto realmente me ha ayudado a hacer Aplicaciones múltiples de rosca en el estudio rad Writing multi-threaded applications Index

si su es cualquier otra cosa de correos y los malos tratar de ayudar a

+0

He estado leyendo esa sección de la ayuda, pero aún no estoy seguro de cómo hacer una conexión dbx en un hilo separado y compartirlo con el hilo principal. – Mario

1

Sólo necesita una conexión por hilo si los hilos están va a hacer acceso simultáneo a la base de datos. Básicamente lo que quiere es que un hilo se conecte y vuelva a usted cuando se haya establecido la conexión. Puede hacer esto en un subproceso, y cuando el subproceso está listo (es decir, conexión establecida), puede enviar un mensaje al subproceso principal para informarle que la conexión dbx ya está disponible. Consulte este tutorial para obtener ideas sobre cómo configurar el hilo y comunicarse entre el hilo y el hilo principal de VCL. Threading Tutorial

+0

+1 Sí, recursos como las conexiones de red pueden perder sincronía en aplicaciones de subprocesos múltiples. Lo mismo se aplica a las conexiones FTP, punteros de archivo, etc. Por lo tanto, crear un recurso separado por subproceso es el camino a seguir. –

Cuestiones relacionadas