Problemas con Strict off

12/09/2005 - 16:21 por Juan Melas | Informe spam
Desarrolle una aplicación con la opción Strict off, en mi maquina funciona
bien, al copiarla a otra máquina me marca "error de sintaxis al convertir
una cadena de caracteres a datetime".

Preguntas similare

Leer las respuestas

#1 Ivanhoe
12/09/2005 - 16:51 | Informe spam
de hecho tu aplicacion la debiste desarrollar con string on
para evitar malas mañas.

para activala por default on,...en :

Project -> Properties -> Common Properties -> Buid

"Juan Melas" wrote in message
news:
Desarrolle una aplicación con la opción Strict off, en mi maquina funciona
bien, al copiarla a otra máquina me marca "error de sintaxis al convertir
una cadena de caracteres a datetime".


Respuesta Responder a este mensaje
#2 Leonardo Azpurua [mvp vb]
12/09/2005 - 23:48 | Informe spam
"Ivanhoe" escribió en el mensaje
news:
de hecho tu aplicacion la debiste desarrollar con string on
para evitar malas mañas.

para activala por default on,...en :

Project -> Properties -> Common Properties -> Buid



Hola, Ivanhoe:

A pesar de todas las recomendaciones, no hay manera de que yo le vea la
ventaja al Strict On.

Es cierto que detecta algunos errores en tiempo de compilación, que de lo
contrario te iban a dar problemas en tiempo de ejecución.

Pero el precio que hay que pagar por esa seguridad adicional, es complicar
(si es que no impide por completo) el uso del Late Binding, una
característica sin la cual se me hace muy difícil vivir (sé que el uso de
interfaces te da casi la misma flexibilidad que no usar Option Strict, de
manera "controlada", pero si sobreviví a quince años de trabajo con "C",
creo que puedo prescindir de esa pequeña ayuda, a cambio de escribir
muchísimo menos).

Por otra parte, si el problema que tiene Juan es derivado de la
configuracion regional (y esa es la impresión que me da), tener Strict On u
Off no va a hacer ninguna diferencia.

"Juan Melas" wrote in message
news:
Desarrolle una aplicación con la opción Strict off, en mi maquina
funciona
bien, al copiarla a otra máquina me marca "error de sintaxis al convertir
una cadena de caracteres a datetime".





Hola, Juan:

Es probable que el problema surja de alguna diferencia en la configuración
regional entre tu equipo de desarrollo y el equipo donde te da el error de
sintaxis.

Si utilizas constantes para representar fechas dentro de tu código, es
conveniente que las expreses siempre como fechas (#mm-dd-yyyy#). Y si estás
recibiendo una fecha en un TextBox, lo más sensato sería que validaras la
corrección del formato en el evento Validate del control, y que la
convirtieras a fecha (mediante CDate o mejor con Date.Parse) y la almacenes
en una variable del tipo correcto antes de realizar ningun proceso con ella.

Aunque no soy fanático del Option Strict, sí creo que las variables que se
usarán para almacenar datos deben ser del tipo de dato corresponiente: te
ahorras muchísimos problemas.

Salud!
Respuesta Responder a este mensaje
#3 Juan Melas
13/09/2005 - 03:24 | Informe spam
Leonardo: El error salta al ejectuar una funcion que carga un dataset a la
que mando como parámetro una cadena con la instrucción sql en mi máquina
funciona perfecto pero al pasarlo a otra máquina tira el error , la fecha la
tomo de un Date Time Picker , en principio armaba la cadena tomando el valor
que me daba el datetimepicker, siguiendo todos los consejos que he leido
puse la opción Strict a On y me dió gran cantidad de errores de asignación
de variables que estoy corrigiendo en todas las capas de la aplicación, creo
que tendré que modificar la lógica y usar parámetros en lugar de concatenar
toda la instrucción como una cadena.

"Leonardo Azpurua [mvp vb]" <l e o n a r d o (arroba) m v p s (punto) o r g>
escribió en el mensaje news:eMStkX%

"Ivanhoe" escribió en el mensaje
news:
de hecho tu aplicacion la debiste desarrollar con string on
para evitar malas mañas.

para activala por default on,...en :

Project -> Properties -> Common Properties -> Buid



Hola, Ivanhoe:

A pesar de todas las recomendaciones, no hay manera de que yo le vea la
ventaja al Strict On.

Es cierto que detecta algunos errores en tiempo de compilación, que de lo
contrario te iban a dar problemas en tiempo de ejecución.

Pero el precio que hay que pagar por esa seguridad adicional, es complicar
(si es que no impide por completo) el uso del Late Binding, una
característica sin la cual se me hace muy difícil vivir (sé que el uso de
interfaces te da casi la misma flexibilidad que no usar Option Strict, de
manera "controlada", pero si sobreviví a quince años de trabajo con "C",
creo que puedo prescindir de esa pequeña ayuda, a cambio de escribir
muchísimo menos).

Por otra parte, si el problema que tiene Juan es derivado de la
configuracion regional (y esa es la impresión que me da), tener Strict On
u Off no va a hacer ninguna diferencia.

"Juan Melas" wrote in message
news:
Desarrolle una aplicación con la opción Strict off, en mi maquina
funciona
bien, al copiarla a otra máquina me marca "error de sintaxis al
convertir
una cadena de caracteres a datetime".





Hola, Juan:

Es probable que el problema surja de alguna diferencia en la configuración
regional entre tu equipo de desarrollo y el equipo donde te da el error de
sintaxis.

Si utilizas constantes para representar fechas dentro de tu código, es
conveniente que las expreses siempre como fechas (#mm-dd-yyyy#). Y si
estás recibiendo una fecha en un TextBox, lo más sensato sería que
validaras la corrección del formato en el evento Validate del control, y
que la convirtieras a fecha (mediante CDate o mejor con Date.Parse) y la
almacenes en una variable del tipo correcto antes de realizar ningun
proceso con ella.

Aunque no soy fanático del Option Strict, sí creo que las variables que se
usarán para almacenar datos deben ser del tipo de dato corresponiente: te
ahorras muchísimos problemas.

Salud!


Respuesta Responder a este mensaje
#4 Julio Casal
13/09/2005 - 14:17 | Informe spam
Hola Juan. Es muy buena práctica el usar Option Strict On, ya que eso te
previene de una serie de problemas más adelante cuando quieras darle
mantenimiento ó cuando quieras depurar tu aplicación. Son increíbles la
cantidad de problemas que surgen cuando no lo activas, te lo digo por
experiencia.

Para resolver tu problema en particular, simplemente haz el Cast adecuado
usando el método Parse correspondiente. Algo así:

Dim fecha As DateTime = Date.Parse(cadena)

Espero haber podido ayudarte.

Saludos.
Julio Casal
.Net Solution Developer
MCAD
Grupo Lebed


"Juan Melas" wrote:

Leonardo: El error salta al ejectuar una funcion que carga un dataset a la
que mando como parámetro una cadena con la instrucción sql en mi máquina
funciona perfecto pero al pasarlo a otra máquina tira el error , la fecha la
tomo de un Date Time Picker , en principio armaba la cadena tomando el valor
que me daba el datetimepicker, siguiendo todos los consejos que he leido
puse la opción Strict a On y me dió gran cantidad de errores de asignación
de variables que estoy corrigiendo en todas las capas de la aplicación, creo
que tendré que modificar la lógica y usar parámetros en lugar de concatenar
toda la instrucción como una cadena.

"Leonardo Azpurua [mvp vb]" <l e o n a r d o (arroba) m v p s (punto) o r g>
escribió en el mensaje news:eMStkX%
>
> "Ivanhoe" escribió en el mensaje
> news:
>> de hecho tu aplicacion la debiste desarrollar con string on
>> para evitar malas mañas.
>>
>> para activala por default on,...en :
>>
>> Project -> Properties -> Common Properties -> Buid
>
> Hola, Ivanhoe:
>
> A pesar de todas las recomendaciones, no hay manera de que yo le vea la
> ventaja al Strict On.
>
> Es cierto que detecta algunos errores en tiempo de compilación, que de lo
> contrario te iban a dar problemas en tiempo de ejecución.
>
> Pero el precio que hay que pagar por esa seguridad adicional, es complicar
> (si es que no impide por completo) el uso del Late Binding, una
> característica sin la cual se me hace muy difícil vivir (sé que el uso de
> interfaces te da casi la misma flexibilidad que no usar Option Strict, de
> manera "controlada", pero si sobreviví a quince años de trabajo con "C",
> creo que puedo prescindir de esa pequeña ayuda, a cambio de escribir
> muchísimo menos).
>
> Por otra parte, si el problema que tiene Juan es derivado de la
> configuracion regional (y esa es la impresión que me da), tener Strict On
> u Off no va a hacer ninguna diferencia.
>
>> "Juan Melas" wrote in message
>> news:
>>> Desarrolle una aplicación con la opción Strict off, en mi maquina
>>> funciona
>>> bien, al copiarla a otra máquina me marca "error de sintaxis al
>>> convertir
>>> una cadena de caracteres a datetime".
>
> Hola, Juan:
>
> Es probable que el problema surja de alguna diferencia en la configuración
> regional entre tu equipo de desarrollo y el equipo donde te da el error de
> sintaxis.
>
> Si utilizas constantes para representar fechas dentro de tu código, es
> conveniente que las expreses siempre como fechas (#mm-dd-yyyy#). Y si
> estás recibiendo una fecha en un TextBox, lo más sensato sería que
> validaras la corrección del formato en el evento Validate del control, y
> que la convirtieras a fecha (mediante CDate o mejor con Date.Parse) y la
> almacenes en una variable del tipo correcto antes de realizar ningun
> proceso con ella.
>
> Aunque no soy fanático del Option Strict, sí creo que las variables que se
> usarán para almacenar datos deben ser del tipo de dato corresponiente: te
> ahorras muchísimos problemas.
>
> Salud!
>
>



Respuesta Responder a este mensaje
#5 Juan Melas
13/09/2005 - 15:37 | Informe spam
Al parecer el problema lo estoy teniendo con sql server al realizar la
conversión ímplicata de las fechas contenidas en la cadena, ahora tambien
falla en mi máquina, lo curioso es que hasta ayer funcionaba perfectamente,
no se si será alguna configuración de sql server o deberé cambiar la
consulta con los campos datetime.

"Julio Casal" escribió en el mensaje
news:
Hola Juan. Es muy buena práctica el usar Option Strict On, ya que eso te
previene de una serie de problemas más adelante cuando quieras darle
mantenimiento ó cuando quieras depurar tu aplicación. Son increíbles la
cantidad de problemas que surgen cuando no lo activas, te lo digo por
experiencia.

Para resolver tu problema en particular, simplemente haz el Cast adecuado
usando el método Parse correspondiente. Algo así:

Dim fecha As DateTime = Date.Parse(cadena)

Espero haber podido ayudarte.

Saludos.
Julio Casal
.Net Solution Developer
MCAD
Grupo Lebed


"Juan Melas" wrote:

Leonardo: El error salta al ejectuar una funcion que carga un dataset a
la
que mando como parámetro una cadena con la instrucción sql en mi máquina
funciona perfecto pero al pasarlo a otra máquina tira el error , la fecha
la
tomo de un Date Time Picker , en principio armaba la cadena tomando el
valor
que me daba el datetimepicker, siguiendo todos los consejos que he leido
puse la opción Strict a On y me dió gran cantidad de errores de
asignación
de variables que estoy corrigiendo en todas las capas de la aplicación,
creo
que tendré que modificar la lógica y usar parámetros en lugar de
concatenar
toda la instrucción como una cadena.

"Leonardo Azpurua [mvp vb]" <l e o n a r d o (arroba) m v p s (punto) o r
g>
escribió en el mensaje news:eMStkX%
>
> "Ivanhoe" escribió en el mensaje
> news:
>> de hecho tu aplicacion la debiste desarrollar con string on
>> para evitar malas mañas.
>>
>> para activala por default on,...en :
>>
>> Project -> Properties -> Common Properties -> Buid
>
> Hola, Ivanhoe:
>
> A pesar de todas las recomendaciones, no hay manera de que yo le vea la
> ventaja al Strict On.
>
> Es cierto que detecta algunos errores en tiempo de compilación, que de
> lo
> contrario te iban a dar problemas en tiempo de ejecución.
>
> Pero el precio que hay que pagar por esa seguridad adicional, es
> complicar
> (si es que no impide por completo) el uso del Late Binding, una
> característica sin la cual se me hace muy difícil vivir (sé que el uso
> de
> interfaces te da casi la misma flexibilidad que no usar Option Strict,
> de
> manera "controlada", pero si sobreviví a quince años de trabajo con
> "C",
> creo que puedo prescindir de esa pequeña ayuda, a cambio de escribir
> muchísimo menos).
>
> Por otra parte, si el problema que tiene Juan es derivado de la
> configuracion regional (y esa es la impresión que me da), tener Strict
> On
> u Off no va a hacer ninguna diferencia.
>
>> "Juan Melas" wrote in message
>> news:
>>> Desarrolle una aplicación con la opción Strict off, en mi maquina
>>> funciona
>>> bien, al copiarla a otra máquina me marca "error de sintaxis al
>>> convertir
>>> una cadena de caracteres a datetime".
>
> Hola, Juan:
>
> Es probable que el problema surja de alguna diferencia en la
> configuración
> regional entre tu equipo de desarrollo y el equipo donde te da el error
> de
> sintaxis.
>
> Si utilizas constantes para representar fechas dentro de tu código, es
> conveniente que las expreses siempre como fechas (#mm-dd-yyyy#). Y si
> estás recibiendo una fecha en un TextBox, lo más sensato sería que
> validaras la corrección del formato en el evento Validate del control,
> y
> que la convirtieras a fecha (mediante CDate o mejor con Date.Parse) y
> la
> almacenes en una variable del tipo correcto antes de realizar ningun
> proceso con ella.
>
> Aunque no soy fanático del Option Strict, sí creo que las variables que
> se
> usarán para almacenar datos deben ser del tipo de dato corresponiente:
> te
> ahorras muchísimos problemas.
>
> Salud!
>
>



Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida