Validaciones on-line en un form

02/04/2007 - 02:08 por Rodrigo | Informe spam
Estoy utilizando datasets en un programa de windows forms. En determinado
form tengo las validaciones en la base de datos (lo normal), sin embargo me
han pedido que ponga validaciones a medida que el usuario va llenando los
campo de la pantalla, algunas de esas validaciones implican leer la base de
datos (ej. claves foraneas). Eso implica que tendria que tener la conexion
abierta.
Como puedo manejar eso con datasets? ya que segun se son un esquema
desconectado.

Alguna experiencia al respecto?

Preguntas similare

Leer las respuestas

#1 Diego Jancic
02/04/2007 - 02:44 | Informe spam
On Apr 1, 9:08 pm, "Rodrigo" wrote:
Estoy utilizando datasets en un programa de windows forms. En determinado
form tengo las validaciones en la base de datos (lo normal), sin embargo me
han pedido que ponga validaciones a medida que el usuario va llenando los
campo de la pantalla, algunas de esas validaciones implican leer la base de
datos (ej. claves foraneas). Eso implica que tendria que tener la conexion
abierta.
Como puedo manejar eso con datasets? ya que segun se son un esquema
desconectado.

Alguna experiencia al respecto?



Hola,
Porque decis que tenes que mantener la conexion abierta? cuando
necesites validar algo haces la consulta y listo. Y si son pocos datos
posiblemente te convenga traerlos antes de que el usuario empiece a
hacer algo en la UI.
Yo hice algunos formularios parecidos que tenian muchos combos del
tipo pais -> provincia (es decir que se cargaban dependiendo de la
informacion) y realmente resulto muuuy incomodo. En mi caso estaba
usando access asi que la performance era muy mala. Te recomiendo que
intentes cachear lo que puedas y hacer las validaciones en otro thread
si se puede...

Saludos!
Respuesta Responder a este mensaje
#2 Rodrigo
02/04/2007 - 03:43 | Informe spam
Hola,
Porque decis que tenes que mantener la conexion abierta? cuando
necesites validar algo haces la consulta y listo.



Lo pregunto por si en produccion puede resultar muy lento estar abriendo y
cerrando.

Y si son pocos datos
posiblemente te convenga traerlos antes de que el usuario empiece a
hacer algo en la UI.



Algunas tablas pequeñas las traigo en el load, pero como los datos pueden ir
creciendo me gustaria generalizar ese criterio.

Yo hice algunos formularios parecidos que tenian muchos combos del
tipo pais -> provincia (es decir que se cargaban dependiendo de la
informacion) y realmente resulto muuuy incomodo.



Incomodo de programar? o lo dices por el performance?

En mi caso estaba
usando access asi que la performance era muy mala. Te recomiendo que
intentes cachear lo que puedas y hacer las validaciones en otro thread
si se puede...




Te refieres a Multi-thread? Si es eso, no conozco mucho al respecto.
Podrias adelantarme algo adicional?

Muchas gracias por tu tiempo y la ayuda.

Saludos
Respuesta Responder a este mensaje
#3 Diego Jancic
02/04/2007 - 07:03 | Informe spam
> Hola,
> Porque decis que tenes que mantener la conexion abierta? cuando
> necesites validar algo haces la consulta y listo.

Lo pregunto por si en produccion puede resultar muy lento estar abriendo y
cerrando.




No creo que eso sea algo que influya mucho, ado.net se maneja
desconectado y no es una gran perdida de performance eso, lo que lo va
a hacer lento es el hecho de hacer la consulta.

> Yo hice algunos formularios parecidos que tenian muchos combos del
> tipo pais -> provincia (es decir que se cargaban dependiendo de la
> informacion) y realmente resulto muuuy incomodo.

Incomodo de programar? o lo dices por el performance?




Lo decia por la performance, cuando un usuario seleccionaba algo de un
combo el siguiente lo tenia que llenar con informacion que volvia de
un query relativamente complicado (unos 4 o 5 joins y varias
condiciones en el where) y resultaba muy molesto tener que esperar
algunos milisegundos para que se cargue.

Te refieres a Multi-thread? Si es eso, no conozco mucho al respecto.
Podrias adelantarme algo adicional?



Si, las aplicaciones windows corren en un thread que es el que procesa
todo lo de la UI, y cualquier proceso que se realice (incluyendo
consultas a la DB) se hace de forma sincronica. Te recomiendo que
hagas un nuevo thread y uses eso para procesar la info. Para darte mas
info seria util que digas si estas en .net 1.x o en 2.0, ya que en 2.0
hay varias ventajas.

Saludos!,
Diego
Respuesta Responder a este mensaje
#4 Alfredo Novoa
02/04/2007 - 12:44 | Informe spam
On Sun, 1 Apr 2007 21:43:11 -0400, "Rodrigo" wrote:

Lo pregunto por si en produccion puede resultar muy lento estar abriendo y
cerrando.



Busca "connection pool".

Incomodo de programar? o lo dices por el performance?



¿Tan difícil es decir velocidad?

Te refieres a Multi-thread? Si es eso, no conozco mucho al respecto.



Pues deberías aprender.



Saludos
Respuesta Responder a este mensaje
#5 Rodrigo
02/04/2007 - 14:22 | Informe spam
Te refieres a Multi-thread? Si es eso, no conozco mucho al respecto.
Podrias adelantarme algo adicional?



Si, las aplicaciones windows corren en un thread que es el que procesa
todo lo de la UI, y cualquier proceso que se realice (incluyendo
consultas a la DB) se hace de forma sincronica. Te recomiendo que
hagas un nuevo thread y uses eso para procesar la info. Para darte mas
info seria util que digas si estas en .net 1.x o en 2.0, ya que en 2.0
hay varias ventajas.




Estoy usando la version 2.0 pero lo que queria es solo una idea de en lo que
me ayudaria el multi-thread para esos fines ya que me luce algo muy
interesante. Seria algo asi como abrir el form dos veces ? (en dos hilos
distintos), un form para la presentacion y otro para las validaciones?,
comunicarse los dos hilos entre si? La verdad no veo muy clara la idea.

Muchas gracias de nuevo.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida