como crear componentes ado en tiempo de ejecucion
buenos dias compañeros alguien tiene conocimiento de si es posible crear tadoconnections y tadoquery en tiempo de ejecucion y como hacerlo gracias por cualquier comentario
|
Hola
De poderse, se puede. La pregunta: Para que? No tiene mucha lógica crear un componente (NO visible) y ademas tener que colocarle todas las conexiones necesarias para que haga algo. Saludos |
Cita:
|
Hola
Lo normal es que cuando se crea un componente se destruya posteriormente. Ahora, la siguiente pregunta: Donde crearas estos componentes?, en algun form?. Saludos |
no los componentes los creare dentro de un tmd_gral, y la aplicacion que contendra estos componentes estara corriendo en el server solo esperando llamadas de un tcpclient para realizar las acciones.
|
Hola
No se lo que es un tmd_gral. Aqui tienes un ejemplo con access. Saludos PD: La direccion que se le da esta en el codigo, para que te funcione cambiala a donde tengas la bd. |
gracias caral le echare un vistazo:) saludos
|
sabes intente hacer algo parecido pero en una funcion que cada ves que un hilo mande llamar se cree su nueva conexion y su query que alterara las tablas de mysql pero me marca el siguiente error yno hallo como hacer un cast para convertir la variable, alguna forma de hacerlo gracias
[Error] Interfaces.pas(79): Incompatible types: 'TZConnection' and 'String'
|
Hola
Da la impresion de que no tendrian que ser String los datos, segun el error que marca. saludos |
Hola
Tambien podria estar aqui el error: Pasaste de ADO a ZEOS sin avisar jejeje. Saludos |
Cita:
|
Hola
No se. Recuerda que vas a necesitar UN SOLO ZConnection para todo. Con solo que lo crees una vez bastara. Los query o tables los tienes que conectar al componente Zconnection que creaste, de lo contrario no encontrara la BD. En esto nunca he hecho nada no puedo guiarte muy bien que digamos, asi que no te fíes mucho. Saludos |
gracias caral por tu ayuda me has alumbrado un poco mas el camino seguire testeandolo para asegurarme.
|
Cita:
En este caso creo que sí está justificado utilizar diferentes zConnections. |
asi es neftali es por ello el de crearlos dinamicamente aunque no encuentro informacion de como hacerlo por mas que busco no encuentro una lectura o un ejemplo de como crearlas conexiones y los querys:( en tiempo de ejecucion el dia es largo asi es que manos al teclado espero hoy terminarlo o encontrar una nueva opcion de como hacerlo saludos.
|
Se crean como cualquier otro componente en ejecución. Busca sobre creación de componentes en ejecución en los foros y encontrarás bastantes temas con ejemplos de código.
Hay una forma sencilla de saber cómo rellenar las propiedades. Crea un componente en un formulario y rellena las propiedades (por ejemplo un Zconnection) de forma que funcione correctamente. Graba el formulario y revisa las propiedades que se han guardado en el DFM. Por ejemplo, si creas un ADOQuery en diseño, en el DFM hay esto: Código:
object ADOQuery1: TADOQuery
|
gracias neftali por el ejemplo lo de crear componentes ya lo solucione con la ayuda de caral, es solo que no entiendo en el siguiente codigo segun yo le doy un nombre al query pero al querer referenciarlo por el nombre no compila, ademas que hice pruebas con querys fijos pero truenan al traslaparse peticiones hacia el server alguna idea de como puedo refeenciar los querys creados por su nombre y otra duda necesito crear variables para controlar un ciclo while y estoy en la misma situacion saludos
|
Cita:
Que estés creando el Query en ejecución no quiere decir que no esté como propiedad del Thread (por ejemplo), para que pueda consultarse desde fuera. El problema es que no se cual es la estructura completa de tu programa. |
a ok gracias este es el codigo del ejecutable que se encuentra en el server y mas abajo pongo el del cliente, esta linea es donde tengo el error Connection:= Myusername+'z'; //aqui marca el error no se como asignarle la conexion
//server
y este es el fragmento del boton de una de las pantallas que lo mandara llamar. //client
|
Supongo que si es del tipo normal, a la propiedad de conexión deberás asignarle la conexión que has creado más arriba:
¿De qué tipo es esa propiedad? |
es ahi donde tengo mis dudas por que ese misma funcion se mandara llamar en todas las iteraciones que tengas los clientes con el servidor, los hilos sabran que tzconnections y que tzquery fueron creados por cada uno de los hilos:confused:, y no he encontrado como hacer una cadena de conexion para los componentes zeos que sea por medio de una cadena, el tipo es tzconnections pero yo al querer asignar por el nombre Myusername(nombre de la maquina que creo el hilo) es tipo string e ahi el problema:o
|
ok al parecer ya funciona aunque no lo se con certeza, la duda que ahora me queda es si tengo que destruir los componentes que he creado o autmaticamente se destruyen cuuando finaliza el hilo, la otra duda es en que momento finalizo el hilo gracias por su tiempo:D
|
Los componentes que hayas creado tú, debe destruirlos tú. Lo lógico sería que los que crees en el Create, los liberes en el Destroy. Los que pertenecen al formulario y se crean en diseño los destruye el propio form, pero los que has creado tú, son tu responsabilidad.
|
ok entonces sigo teniendo algunos detalles, lo malo de esto es que el programa siempre estara corriendo en el server(todo el tiempo) asi es que no puedo usar el evento oncreate(), ondestroy() tendre que usar una funcion para destruirlos aunque esto si me da un poco de panico lo probare gracias.
|
Hola
Creo la conexion y el query que necesite. Lo uso e inmediatamente despues en el acto lo destruyo. Simple y transparente. Se puede hacer un simple procedimiento que sea llamado cuando ya no se usen los componentes para ser destruidos. La verdad no le veo lo complicado. Saludos |
Cita:
Me refería a los eventos de los hilos (threads) no del programa principal. |
Cita:
aunque segun yo le doy un nombre al query al querer acceder por su nombre no logro que compile
Cita:
este codigo lo uso para destruir el hilo en la parte del cliente
|
Cita:
En cualquier caso el hilo y todo lo que hubiera dentro ya no existe (por decirlo así). |
Cita:
|
Tal vez deberíamos "hacer un alto en el camino" (como se dice aquí) y pensar y revisar todo lo que hemos hablado, porque te confío que yo mismo he perdido un poco de vista el objetivo final.
Creo que hemos dado muchas vueltas y me suena que hemos estado discutiendo de los mismo en varios hilos y al final yo me he perdido un poco. Así que tal vez deberíamos poner la PAUSA. ;) |
si totalmente de acuerdo la verdad hasta yo me empiezo a confundir al ver el codigo:eek: y tanto texto que sigo intentando digerir, creo que mi mayor problema es que veo diferentes textos y ejemplos de programacion que son diferentes pero igual y pueden llegar al mismo resultado:D
|
La franja horaria es GMT +2. Ahora son las 17:30:14. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi