SQLDMO me cambia el formato de la fecha a aaaaddmm

31/05/2005 - 16:43 por Ruben | Informe spam
Hola a todos, os explico mi problema.
Tengo una aplicacion en VB6 que conecta con un servidor sql server 7.0.
Desde mi aplicacion hago una consulta a la base de datos en la que paso
unas fechas en formato dd/mm/yyyy, pues bien cuando llegan al servidor
llegan con formato aaaaddmm (lo he visto poniendo una traza), con lo
cual lo q me devuelve la base de datos no corresponde con lo pedido.

He cambiado la configuracion regional, poniendola de todas las maneras.
He registrado el sqldmo veinte veces, unas veces con la carpeta 1034,
otras con la 1033 y con las dos a la vez y nada.

Tambien por si os da una pista, tengo en la misma aplicacion unos
accesos a la base de datos con ADO y estos si que me lo hace bien,
desde el mismo servidor y a la misma base de datos. No puedo poner
todos los accesos asi porque son muchos y no tengo tiempo suficiente
para un cambio tan masivo.

Muchas gracias

Preguntas similare

Leer las respuestas

#6 Maxi
31/05/2005 - 17:40 | Informe spam
Hola, podes mostarme el SP y como lo pasas?


Salu2
Maxi


"Ruben" escribió en el mensaje
news:
Si, convierto lo que me pasa el usuario a dd/mm/yyyy y eso es lo que
paso a los parametros del procedimiento almacenado

Respuesta Responder a este mensaje
#7 Ruben
31/05/2005 - 17:52 | Informe spam
Lo paso asi

a_parametros(0) = sEstado
a_parametros(1) = sUsuario
a_parametros(2) = sCliente
a_parametros(3) = sNPax
a_parametros(4) = Format(mskDesde, "dd/mm/yyyy")
a_parametros(5) = Format(mskHasta, "dd/mm/yyyy")
a_parametros(6) = sExpediente
a_parametros(7) = sGrupo
cl_ExpedienteCab.b_SelectRegistro "p_obj_ExpedienteCab_02",
rdOpenKeyset, a_parametros, rdConcurRowVer

Este es el procedimiento

CREATE PROCEDURE p_obj_ExpedienteCab_02

@Estado varchar(2),
@Usuarios varchar (15),
@Cliente varchar (75),
@Nombre_Pax varchar (50),
@d_Desde datetime,
@d_Hasta datetime,
@Id_c_NumExpediente varchar(18),
@Grupo varchar(2)

AS

Select ExpedienteCab.*,
'Cliente' = mntClientes.c_descripcion,
'Estado' = mntEstadoexp.c_Descripcion,
'Moneda' = ExpedienteCab.c_MonedaGOper

from ExpedienteCab
join mntEstadoexp
on mntEstadoexp.id_c_codigo = ExpedienteCab.c_estado

join mntClientes
on mntClientes.id_c_codigo = ExpedienteCab.c_f_Cliente

where ExpedienteCab.Id_c_NumExpediente like @Id_c_NumExpediente
and ExpedienteCab.c_Estado like @Estado
and ExpedienteCab.c_Usuario like @Usuarios
and mntClientes.c_Descripcion like @Cliente
and ExpedienteCab.c_NombrePax Like @Nombre_Pax
and ExpedienteCab.d_FechaLlegada between @d_desde and @d_Hasta
and SUBSTRING(ExpedienteCab.id_c_NumExpediente, 11,2 ) like @Grupo

order by ExpedienteCab.d_FechaLlegada, SUBSTRING
(ExpedienteCab.id_c_NumExpediente, 12, 18)
Respuesta Responder a este mensaje
#8 Maxi
31/05/2005 - 18:06 | Informe spam
Hola, (creo que no has entendido lo que hemos hablado :( ) pasalo asi:

a_parametros(0) = sEstado
a_parametros(1) = sUsuario
a_parametros(2) = sCliente
a_parametros(3) = sNPax
a_parametros(4) = Format(mskDesde, "yyyymmdd")
a_parametros(5) = Format(mskHasta, "yyyymmdd")
a_parametros(6) = sExpediente
a_parametros(7) = sGrupo
cl_ExpedienteCab.b_SelectRegistro "p_obj_ExpedienteCab_02",
rdOpenKeyset, a_parametros, rdConcurRowVer



Salu2
Maxi


"Ruben" escribió en el mensaje
news:
Lo paso asi

a_parametros(0) = sEstado
a_parametros(1) = sUsuario
a_parametros(2) = sCliente
a_parametros(3) = sNPax
a_parametros(4) = Format(mskDesde, "dd/mm/yyyy")
a_parametros(5) = Format(mskHasta, "dd/mm/yyyy")
a_parametros(6) = sExpediente
a_parametros(7) = sGrupo
cl_ExpedienteCab.b_SelectRegistro "p_obj_ExpedienteCab_02",
rdOpenKeyset, a_parametros, rdConcurRowVer

Este es el procedimiento

CREATE PROCEDURE p_obj_ExpedienteCab_02

@Estado varchar(2),
@Usuarios varchar (15),
@Cliente varchar (75),
@Nombre_Pax varchar (50),
@d_Desde datetime,
@d_Hasta datetime,
@Id_c_NumExpediente varchar(18),
@Grupo varchar(2)

AS

Select ExpedienteCab.*,
'Cliente' = mntClientes.c_descripcion,
'Estado' = mntEstadoexp.c_Descripcion,
'Moneda' = ExpedienteCab.c_MonedaGOper

from ExpedienteCab
join mntEstadoexp
on mntEstadoexp.id_c_codigo = ExpedienteCab.c_estado

join mntClientes
on mntClientes.id_c_codigo = ExpedienteCab.c_f_Cliente

where ExpedienteCab.Id_c_NumExpediente like @Id_c_NumExpediente
and ExpedienteCab.c_Estado like @Estado
and ExpedienteCab.c_Usuario like @Usuarios
and mntClientes.c_Descripcion like @Cliente
and ExpedienteCab.c_NombrePax Like @Nombre_Pax
and ExpedienteCab.d_FechaLlegada between @d_desde and @d_Hasta
and SUBSTRING(ExpedienteCab.id_c_NumExpediente, 11,2 ) like @Grupo

order by ExpedienteCab.d_FechaLlegada, SUBSTRING
(ExpedienteCab.id_c_NumExpediente, 12, 18)

Respuesta Responder a este mensaje
#9 Ruben
31/05/2005 - 18:17 | Informe spam
ok probare
Gracias
Respuesta Responder a este mensaje
#10 Alejandro Mesa
01/06/2005 - 01:02 | Informe spam
Ruben,

La mejor manera de evitar estos problemas es pasando la fecha con formato
ISO/ISO8601, que son:

- aaaammdd
- aaaa-mm-ddThh:mm:ss.mmm

Des esa forma sql server va a interpretar esos valores como fecha,
independiente del formato de "DATEFORMAT" o lenguaje en uso por el servidor.


Ejemplo:

use northwind
go

exec dbo.[Sales by Year] @Beginning_Date = '19970701', @Ending_Date =
'19971231'
go


AMB

"Ruben" wrote:

Hola a todos, os explico mi problema.
Tengo una aplicacion en VB6 que conecta con un servidor sql server 7.0.
Desde mi aplicacion hago una consulta a la base de datos en la que paso
unas fechas en formato dd/mm/yyyy, pues bien cuando llegan al servidor
llegan con formato aaaaddmm (lo he visto poniendo una traza), con lo
cual lo q me devuelve la base de datos no corresponde con lo pedido.

He cambiado la configuracion regional, poniendola de todas las maneras.
He registrado el sqldmo veinte veces, unas veces con la carpeta 1034,
otras con la 1033 y con las dos a la vez y nada.

Tambien por si os da una pista, tengo en la misma aplicacion unos
accesos a la base de datos con ADO y estos si que me lo hace bien,
desde el mismo servidor y a la misma base de datos. No puedo poner
todos los accesos asi porque son muchos y no tengo tiempo suficiente
para un cambio tan masivo.

Muchas gracias


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida