Pregunta:

23/07/2003 - 17:46 por Scott | Informe spam
Hola grupo:
tengo una consulta he leido un en articulo que se debe evitar a toda costa
el uso de variables de tipo variant ya que consumen mas recursos y hacen mas
lentos los procesos y bueno yo lamentablemete en mi aplicacion utilizo este
tipo de variable lo que pasa es que yo hago lo siguiente:
creo una clase:

en (general) declaraciones de mi modulo clase
Public DeVaProv As Variant
****************
y en modulo en general declaraciones
Public ManDaProv As Variant
***************
Public Sub Cls_Proveedor()
Dim Dlg_Proveedor As New FrmProveedor2
Load Dlg_Proveedor
With Dlg_Proveedor
.Texto1(0).Text = ManDaProv(1)
.Texto1(1).Text = ManDaProv(2)
.Texto1(2).Text = ManDaProv(3)
.Texto1(3).Text = ManDaProv(4)
.Texto1(4).Text = ManDaProv(5)
.Texto1(5).Text = ManDaProv(6)
.Texto1(6).Text = ManDaProv(7)
.Texto1(7).Text = ManDaProv(8)
.Caption = ManDaProv(9)
.Show vbModal **ejecuta un formulario modalcon los text vacios
Acept = .Acept
If Acept Then ** if si llena todos los text estos datos se
devuelven
DeVaProv = Array(.Texto1(0).Text, .Texto1(1).Text,
.Texto1(2).Text, .Texto1(3).Text, .Texto1(4).Text, .Texto1(5).Text,
.Texto1(6).Text, .Texto1(7).Text)
End If
End With
Unload Dlg_Proveedor
End Sub
****************************
codigo del boton nuevode formulario:
Dim CodP As String
Dim ObjProv As New Class_Angel

ManDaProv = Array("", "", "", "", "", "", "", "", "", "Nuevo Proveedor")
With ObjProv
.Cls_Proveedor
If .Acept Then
CodP = "P" & Codigo("Select * From Proveedor", 3, "0")
SenProv = "Insert Into
Proveedor(PrvCod,PrvRaz,PrvDir,PrvPais,PrvCiu,PrvTelf,PrvCto1,PrvCto2,PrvTel
f1) Values('" & _
CodP & "','" & .DeVaProv(0) & "','" & .DeVaProv(1) &
"','" & .DeVaProv(2) & "','" & .DeVaProv(3) & "','" &
.DeVaProv(4) & "','" & .DeVaProv(5) & "','" & .DeVaProv(6) & "','" &
.DeVaProv(7) & "'
End With

Preguntas similare

Leer las respuestas

#11 Softjaen
24/07/2003 - 00:21 | Informe spam
"Scott" preguntó:

Mostrar la cita
En el módulo de clase o en el módulo del formulario, dependiendo donde
quieres enviar y recibir los datos.

Como bien ha puntualizado Eduardo A. Morcillo, en lugar de declarar
variables globales «Public» en un módulo estándar (*.bas), crea
procedimientos «Public Property» en el formulario modal (o en el módulo de
clase) para que de ésta manera puedas enviar y recibir datos sin problemas.

Enrique Martínez
[MS MVP - VB]
#12 Softjaen
24/07/2003 - 00:27 | Informe spam
"Scott" escribió:

Mostrar la cita
Has vuelto a leer bien. :-)

La instrucción «Option Explicit» se utiliza a nivel de módulo (en la sección
«Declaraciones»), para que de ésta forma nos obligemos a declarar
explicitamente las variables contenidas en dicho módulo y no tengamos
dolores de cabeza.

Mi recomendación es que la utilices en todos los formularios y restantes
tipos de módulos. Para que te aparezca automáticamente cada vez que crees un
nuevo módulo o formulario, selecciona el menú «Herramientas» --> «Opciones»
y señala la casilla «Requerir declaración de variables».

Enrique Martínez
[MS MVP - VB]
#13 Eduardo A. Morcillo [MS MVP]
24/07/2003 - 06:30 | Informe spam
Mostrar la cita
Que? Que? He dicho algo? :)

Mostrar la cita
Realmente no se que diferencia haya en rendimiento (no creo que mucha si es
que hay). Lo que es seguro es que declarando la variable como public vamos
en contra de las reglas de OOP, ademas de no poder hacer validaciones u
otras operaciones relacionadas con el cambio o el acceso a la propiedad (por
ejemplo hacer un Refresh cuando se cambia una propiedad). Sin embargo su uso
cuando se convierete una estructura a clase (suponiendo que solo usamos la
clase como un contenedor de los datos, sin tener operaciones) es mucho mas
comodo.

Eduardo A. Morcillo [MS MVP - VB]
http://www.mvps.org/emorcillo
#14 Softjaen
24/07/2003 - 09:16 | Informe spam
"Eduardo A. Morcillo [MS MVP]"

Mostrar la cita
Pues esa era mi duda que siempre me ha estado rondando por la cabeza: la
diferencia existente en cuanto al rendimiento, si es que la hay.

Comparto tu opinión referente a que va en contra de las reglas de la POO
declarar variables «Public» en la sección «Declaraciones» de cualquier
módulo estándar, de clase o de formulario, porque como he dicho en el
mensaje de respuesta a Manuel Romero, no cumple con el principio de la
«ocultación de datos», lo que nos impediría disfrutar del concepto de
encapsulamiento que nos proporciona los procedimientos de propiedad
«Property».

En cambio si no hay más remedio es cuando creo que habría que declarar
variables públicas de lectura y escritura, (que no evita que internamente
Visual Basic cree parejas de procedimientos de propiedad en los módulos de
clase), sobretodo en propiedades que son autovalidables (como pueden ser las
variables booleanas), aceptan cualquier valor del intervalo permitido por el
tipo de datos (variables Single o Double), o conocemos de antemano que no va
haber limitaciones en el tamaño o el valor de una cadena de texto (las
variables tipo String). Por el contrario, si necesitamos evaluar el dato,
donde se ponga un buen procedimiento «Property», bien implementado y
depurado, que se quiten todas las variables públicas. :-)

En fin, ésto es como todo: dependiendo de los casos unas veces será mejor
utilizar procedimientos de propiedad (que es lo recomendable), y otros casos
pues no nos quedará más remedio que utilizar variables públicas.

Bueno. Gracias por la respuesta, Eduardo.

Un saludo.

Enrique Martínez
[MS MVP - VB]
Ads by Google
Search Busqueda sugerida