Cita:
Empezado por orihuela
Mi pregunta es, ¿ESTA ASIGNACION SE COPIA POR VALOR O POR REFERENCIA?
SQL:= modeloCliente.ListarClientes();
Lo que si puedo decir es que una vez finalizada la funcion del controlador, el destructor del modelo cliente actua y libera el tsqlquery. Aun así la variable sql del formulario esta correctamente cargada y no esta liberada, lo que me hace pensar que es por copia o que no se esta liberado bien. El problema de la ram puede venir por ahí. cada vez que se crea el modelo se crea un nuevo tsqlquery, ¿se habra liberado el espacio reservado para el anterior?
|
Eso es una asignación de punteros. Al hacerlo SQL debería estar sin crear (apuntando a nil), pues si lo estuviera sí que perderías acceso a la memoria apuntada y por lo tanto tendrías pérdida de memoria.
Al liberar el Query, la variable SQL no se apunta a nil, a no ser que lo hagas manualmente. Si intentas hacer algo con va variable SQL seguramente obtendrás un access Violation, pues esa memoria a la que apunta ya ha sido liberada.