![]() |
Quitar variable de memoria
Tengo una aplicacion y en determinado momento necesito una variable
cadenaSQL:string; que uso para construir y guardar una consulta SQL, luego ese string se lo meto a un datset y ya no o vuelvo a necesitar en principio, ¿como hago para quitar el string de momoria? puede ser dispose o algo asi? cual es la sintaxis. un saludo. |
Puedes quitar el contenido del string, pero hasta donde yo se, no puedes quitar "amablemente" el puntero de esta variable, este vivirá dentro de su scope.
Saludos! |
ok, a lo largo de la aplicacion tendre cuatro o cinco strings de esa forma, no ocupan mucho en memoria no?, o me sera mejor poner una unica. Es decir podria poner esa string en un modulo de datos que estoy usando para la base de datos y usarla cuando necesite?
|
Creo que la ayuda es mas que clara:
Cita:
|
Cita:
Creo que definir una variable Global (para no definir 4 o 5 en otros lugares) para evitar espacio es un error. Dada la memoria que puede ocupar un programa hoy en día, el espacio de memoria de 5 variables de tipo String en comparación es ínfimo. Además las variables privadas (por ejemplo definidas dentro de una función) se destruyen cuando se termina la llamada a esa función, por lo tanto, al final seguramente acabarás ahorrando memoria. |
Ten en cuenta que Delphi maneja MUY eficientemente los strings. Creo que debes venir de programar en C++ donde es una patada en el higado y tiene mas sentido la pregunta... pues la verdad los strings en Delphi dan sopa y seco a todos los demas.
Delphi automaticamente administra la memoria de los strings, reclamando y liberando de forma dinamica. Lo que debes hacer es usar Var: String sin definirle un tamaño (para que no sea un ShortString) y todo listo. Las variables que se definen dentro de las funciones/metodos tienen un manejo mas optimo que las globales. Ademas una cadena de Sql? eso es pan comido... No hay manera que por ese uso te quedes sin memoria. Ademas, es buena practica de desarrollo no usar variables globales mientras existan otras alternativas. Asi que para resumir: No consumen mucha memoria y Delphi la libera perfectamente. |
ok, muchas gracias a todos, me habeis ayudado, declarare entonces variables locales pq van a estar en la funcion click que llama a un formulario que construye una sql a partir de las selecciones que haga el usuario de manera grafica y luego guardo esa sql en la string para asignarla a un data set
gracias a todos, un saludo |
La franja horaria es GMT +2. Ahora son las 07:02:28. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi