Tablas vinculadas

26/04/2005 - 23:13 por hugo | Informe spam
Hola foro:

Tango una base de datos en access que tiene tablas propias y otras
vinculadas con una base de datos de Progress.
Estas se acceden a travez de un origen de datos ODBC (no OLE DB)
Me gustaría saber como tener esas tablas de progress vinculadas en sql
server.
Estoy intentando con OPENROWSET
Si sirve de algo, la cadena de conexion de access para las tablas vinculadas
es:
ODBC;DSN=NombreDSN;HOST=NombreHost;PORT%03;DB=distrib;UID=NombreUsuario;TA
BLE=PUB.clientes

Por otro lado si conecto un datagrid de vb6 con con control ADO datacontrol,
la cadena que genera es (esto funciona bien):
Provider=MSDASQL.1;Password=contraseña;Persist Security Info=True;User
ID=NombreUsuario;Data Source=NombreDSN

El problema puntual es que si ejecuto esto:
SELECT a.*
FROM OPENROWSET('MSDASQL','NombreDSN';'NombreUsuario';'contraseña',
'SELECT * FROM pub.clientes') AS a

devuelve este error
Servidor: mensaje 8114, nivel 16, estado 10, línea 1
Error al convertir el tipo de datos DBTYPE_DBDATE a datetime.

en cambio si ejectuto esto
SELECT a.*
FROM OPENROWSET('MSDASQL','BramarSL';'Alejandro';'12383',
'SELECT idCliente, nomcli FROM pub.clientes') AS a

anda perfecto.

Cómo puedo evitar ese error de conversión?
Gracias por adelantado y saludos.

Preguntas similare

Leer las respuestas

#6 hugo
27/04/2005 - 14:48 | Informe spam
Gracias a todos, lo voy a probar


"Alejandro Mesa" escribió en el
mensaje news:
Correccion,

SELECT a.col1, ..., coln
FROM OPENROWSET('MSDASQL','NombreDSN';'NombreUsuario';'contraseña',
'SELECT * FROM pub.clientes where coln != #01/01/0001#') AS a

union all

SELECT a.col1, ..., case when coln = '17530101' then null else coln end as
coln
FROM OPENROWSET('MSDASQL','NombreDSN';'NombreUsuario';'contraseña',
'SELECT col1, ..., ''17530101'' as coln FROM pub.clientes where coln > #01/01/0001#') AS a


AMB


"Alejandro Mesa" wrote:

> Trata haciendo una union de las filas con la columna fecha (la llamare


coln)
> coln > 01/01/0001 (yo no se como se especifica un valor de fecha en


progress)
> y la seleccion de las demas columnas y null en la coln:
>
> SELECT a.col1, ..., coln
> FROM OPENROWSET('MSDASQL','NombreDSN';'NombreUsuario';'contraseña',
> 'SELECT * FROM pub.clientes where coln != #01/01/0001#') AS a
>
> union all
>
> SELECT a.col1, ..., null as coln
> FROM OPENROWSET('MSDASQL','NombreDSN';'NombreUsuario';'contraseña',
> 'SELECT * FROM pub.clientes where coln = #01/01/0001#') AS a
>
>
> AMB
>
> "hugo" wrote:
>
> > Hola Maxi:
> >
> > Me parece que el problema esta en que algunos registros tienen fechas


con
> > algún valor que sql server no puede convertir.
> > Ya que si hago un select de las columas exceptuando la fecha anda


bien.
> > Por otro lado, si realizo una consulta que devulva algunos registros
> > incluyendo el campo fecha también anda.
> > Falla puntualmente con unos registros que tienen un valor de fecha???


vaya
> > se a saver cual??.
> > El editor de progress muestra esos registros como 01/01/0001, mientras


que
> > access los muestra como 01/01/1901.
> > Sql server falla solo con esos registros, con los demas muestra todo,


fecha
> > inclusive.
> > Me gustaría solucionar este problema sin meter mano en la base de


Progress
> > (sin cambiar el valor de esos registros).
> > Se podrá convertir estos registros en la consulta de alguna manera??
> > Si se te ocurre algo, tirame una soga por favor.
> > Voy a seguir probando
> > Gracias y saludos
> >
> >
> >
> > "Maxi" escribió en el mensaje
> > news:
> > > Hola, peo en el primer caso no estas pasando el user ni el pass no?


ademas
> > > podrias de ver de vincular los servidores vinculados. Eso si, trata


de
> > tener
> > > los ultimos drivers del motor :-)
> > >
> > >
> > > Maxi - Buenos Aires - Argentina
> > > Desarrollador 3 Estrellas
> > > Msn:
> > >
> > > Maxi.da[arroba]gmail.com
> > >
> > > "hugo" escribió en el mensaje
> > > news:
> > > > Hola foro:
> > > >
> > > > Tango una base de datos en access que tiene tablas propias y otras
> > > > vinculadas con una base de datos de Progress.
> > > > Estas se acceden a travez de un origen de datos ODBC (no OLE DB)
> > > > Me gustaría saber como tener esas tablas de progress vinculadas en


sql
> > > > server.
> > > > Estoy intentando con OPENROWSET
> > > > Si sirve de algo, la cadena de conexion de access para las tablas
> > > > vinculadas
> > > > es:
> > > >
> >


ODBC;DSN=NombreDSN;HOST=NombreHost;PORT%03;DB=distrib;UID=NombreUsuario;TA
> > > > BLE=PUB.clientes
> > > >
> > > > Por otro lado si conecto un datagrid de vb6 con con control ADO
> > > > datacontrol,
> > > > la cadena que genera es (esto funciona bien):
> > > > Provider=MSDASQL.1;Password=contraseña;Persist Security


Info=True;User
> > > > ID=NombreUsuario;Data Source=NombreDSN
> > > >
> > > > El problema puntual es que si ejecuto esto:
> > > > SELECT a.*
> > > > FROM


OPENROWSET('MSDASQL','NombreDSN';'NombreUsuario';'contraseña',
> > > > 'SELECT * FROM pub.clientes') AS a
> > > >
> > > > devuelve este error
> > > > Servidor: mensaje 8114, nivel 16, estado 10, línea 1
> > > > Error al convertir el tipo de datos DBTYPE_DBDATE a datetime.
> > > >
> > > > en cambio si ejectuto esto
> > > > SELECT a.*
> > > > FROM OPENROWSET('MSDASQL','BramarSL';'Alejandro';'12383',
> > > > 'SELECT idCliente, nomcli FROM pub.clientes') AS a
> > > >
> > > > anda perfecto.
> > > >
> > > > Cómo puedo evitar ese error de conversión?
> > > > Gracias por adelantado y saludos.
> > > >
> > > >
> > >
> > >
> >
> >
> >
Respuesta Responder a este mensaje
#7 hugo
27/04/2005 - 17:52 | Informe spam
Hola foro:

Bueno esto hizo que funcione con todos los registros:

SELECT a.*
FROM OPENROWSET('MSDASQL','NombreDSN;'NombreUsuario';'Contraseña',
'SELECT idCliente, nomcli, CAST(fecalta AS varchar(10)) FROM
pub.clientes') AS a

No se puede convertir a datetime, genera el eror.
A que otro tipo de datos que no sea texto lo podre convertir para poder
hacer filtros del tipo between fecja1 and fecha2

Gracias


"hugo" escribió en el mensaje
news:
Gracias a todos, lo voy a probar


"Alejandro Mesa" escribió en el
mensaje news:
> Correccion,
>
> SELECT a.col1, ..., coln
> FROM OPENROWSET('MSDASQL','NombreDSN';'NombreUsuario';'contraseña',
> 'SELECT * FROM pub.clientes where coln != #01/01/0001#') AS a
>
> union all
>
> SELECT a.col1, ..., case when coln = '17530101' then null else coln end


as
> coln
> FROM OPENROWSET('MSDASQL','NombreDSN';'NombreUsuario';'contraseña',
> 'SELECT col1, ..., ''17530101'' as coln FROM pub.clientes where coln
> #01/01/0001#') AS a
>
>
> AMB
>
>
> "Alejandro Mesa" wrote:
>
> > Trata haciendo una union de las filas con la columna fecha (la llamare
coln)
> > coln > 01/01/0001 (yo no se como se especifica un valor de fecha en
progress)
> > y la seleccion de las demas columnas y null en la coln:
> >
> > SELECT a.col1, ..., coln
> > FROM OPENROWSET('MSDASQL','NombreDSN';'NombreUsuario';'contraseña',
> > 'SELECT * FROM pub.clientes where coln != #01/01/0001#') AS a
> >
> > union all
> >
> > SELECT a.col1, ..., null as coln
> > FROM OPENROWSET('MSDASQL','NombreDSN';'NombreUsuario';'contraseña',
> > 'SELECT * FROM pub.clientes where coln = #01/01/0001#') AS a
> >
> >
> > AMB
> >
> > "hugo" wrote:
> >
> > > Hola Maxi:
> > >
> > > Me parece que el problema esta en que algunos registros tienen


fechas
con
> > > algún valor que sql server no puede convertir.
> > > Ya que si hago un select de las columas exceptuando la fecha anda
bien.
> > > Por otro lado, si realizo una consulta que devulva algunos registros
> > > incluyendo el campo fecha también anda.
> > > Falla puntualmente con unos registros que tienen un valor de


fecha???
vaya
> > > se a saver cual??.
> > > El editor de progress muestra esos registros como 01/01/0001,


mientras
que
> > > access los muestra como 01/01/1901.
> > > Sql server falla solo con esos registros, con los demas muestra


todo,
fecha
> > > inclusive.
> > > Me gustaría solucionar este problema sin meter mano en la base de
Progress
> > > (sin cambiar el valor de esos registros).
> > > Se podrá convertir estos registros en la consulta de alguna manera??
> > > Si se te ocurre algo, tirame una soga por favor.
> > > Voy a seguir probando
> > > Gracias y saludos
> > >
> > >
> > >
> > > "Maxi" escribió en el mensaje
> > > news:
> > > > Hola, peo en el primer caso no estas pasando el user ni el pass


no?
ademas
> > > > podrias de ver de vincular los servidores vinculados. Eso si,


trata
de
> > > tener
> > > > los ultimos drivers del motor :-)
> > > >
> > > >
> > > > Maxi - Buenos Aires - Argentina
> > > > Desarrollador 3 Estrellas
> > > > Msn:
> > > >
> > > > Maxi.da[arroba]gmail.com
> > > >
> > > > "hugo" escribió en el mensaje
> > > > news:
> > > > > Hola foro:
> > > > >
> > > > > Tango una base de datos en access que tiene tablas propias y


otras
> > > > > vinculadas con una base de datos de Progress.
> > > > > Estas se acceden a travez de un origen de datos ODBC (no OLE DB)
> > > > > Me gustaría saber como tener esas tablas de progress vinculadas


en
sql
> > > > > server.
> > > > > Estoy intentando con OPENROWSET
> > > > > Si sirve de algo, la cadena de conexion de access para las


tablas
> > > > > vinculadas
> > > > > es:
> > > > >
> > >



ODBC;DSN=NombreDSN;HOST=NombreHost;PORT%03;DB=distrib;UID=NombreUsuario;TA
> > > > > BLE=PUB.clientes
> > > > >
> > > > > Por otro lado si conecto un datagrid de vb6 con con control ADO
> > > > > datacontrol,
> > > > > la cadena que genera es (esto funciona bien):
> > > > > Provider=MSDASQL.1;Password=contraseña;Persist Security
Info=True;User
> > > > > ID=NombreUsuario;Data Source=NombreDSN
> > > > >
> > > > > El problema puntual es que si ejecuto esto:
> > > > > SELECT a.*
> > > > > FROM
OPENROWSET('MSDASQL','NombreDSN';'NombreUsuario';'contraseña',
> > > > > 'SELECT * FROM pub.clientes') AS a
> > > > >
> > > > > devuelve este error
> > > > > Servidor: mensaje 8114, nivel 16, estado 10, línea 1
> > > > > Error al convertir el tipo de datos DBTYPE_DBDATE a datetime.
> > > > >
> > > > > en cambio si ejectuto esto
> > > > > SELECT a.*
> > > > > FROM OPENROWSET('MSDASQL','BramarSL';'Alejandro';'12383',
> > > > > 'SELECT idCliente, nomcli FROM pub.clientes') AS a
> > > > >
> > > > > anda perfecto.
> > > > >
> > > > > Cómo puedo evitar ese error de conversión?
> > > > > Gracias por adelantado y saludos.
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> > >


Respuesta Responder a este mensaje
#8 Maxi
27/04/2005 - 18:12 | Informe spam
Hugo, que pasa si volves a convertir a datetime? no sera que ese campo tiene
basura?


Salu2
Maxi


"hugo" escribió en el mensaje
news:%
Hola foro:

Bueno esto hizo que funcione con todos los registros:

SELECT a.*
FROM OPENROWSET('MSDASQL','NombreDSN;'NombreUsuario';'Contraseña',
'SELECT idCliente, nomcli, CAST(fecalta AS varchar(10)) FROM
pub.clientes') AS a

No se puede convertir a datetime, genera el eror.
A que otro tipo de datos que no sea texto lo podre convertir para poder
hacer filtros del tipo between fecja1 and fecha2

Gracias


"hugo" escribió en el mensaje
news:
Gracias a todos, lo voy a probar


"Alejandro Mesa" escribió en el
mensaje news:
> Correccion,
>
> SELECT a.col1, ..., coln
> FROM OPENROWSET('MSDASQL','NombreDSN';'NombreUsuario';'contraseña',
> 'SELECT * FROM pub.clientes where coln != #01/01/0001#') AS a
>
> union all
>
> SELECT a.col1, ..., case when coln = '17530101' then null else coln end


as
> coln
> FROM OPENROWSET('MSDASQL','NombreDSN';'NombreUsuario';'contraseña',
> 'SELECT col1, ..., ''17530101'' as coln FROM pub.clientes where coln


>> > #01/01/0001#') AS a
>
>
> AMB
>
>
> "Alejandro Mesa" wrote:
>
> > Trata haciendo una union de las filas con la columna fecha (la
> > llamare
coln)
> > coln > 01/01/0001 (yo no se como se especifica un valor de fecha en
progress)
> > y la seleccion de las demas columnas y null en la coln:
> >
> > SELECT a.col1, ..., coln
> > FROM OPENROWSET('MSDASQL','NombreDSN';'NombreUsuario';'contraseña',
> > 'SELECT * FROM pub.clientes where coln != #01/01/0001#') AS a
> >
> > union all
> >
> > SELECT a.col1, ..., null as coln
> > FROM OPENROWSET('MSDASQL','NombreDSN';'NombreUsuario';'contraseña',
> > 'SELECT * FROM pub.clientes where coln = #01/01/0001#') AS a
> >
> >
> > AMB
> >
> > "hugo" wrote:
> >
> > > Hola Maxi:
> > >
> > > Me parece que el problema esta en que algunos registros tienen


fechas
con
> > > algún valor que sql server no puede convertir.
> > > Ya que si hago un select de las columas exceptuando la fecha anda
bien.
> > > Por otro lado, si realizo una consulta que devulva algunos
> > > registros
> > > incluyendo el campo fecha también anda.
> > > Falla puntualmente con unos registros que tienen un valor de


fecha???
vaya
> > > se a saver cual??.
> > > El editor de progress muestra esos registros como 01/01/0001,


mientras
que
> > > access los muestra como 01/01/1901.
> > > Sql server falla solo con esos registros, con los demas muestra


todo,
fecha
> > > inclusive.
> > > Me gustaría solucionar este problema sin meter mano en la base de
Progress
> > > (sin cambiar el valor de esos registros).
> > > Se podrá convertir estos registros en la consulta de alguna
> > > manera??
> > > Si se te ocurre algo, tirame una soga por favor.
> > > Voy a seguir probando
> > > Gracias y saludos
> > >
> > >
> > >
> > > "Maxi" escribió en el mensaje
> > > news:
> > > > Hola, peo en el primer caso no estas pasando el user ni el pass


no?
ademas
> > > > podrias de ver de vincular los servidores vinculados. Eso si,


trata
de
> > > tener
> > > > los ultimos drivers del motor :-)
> > > >
> > > >
> > > > Maxi - Buenos Aires - Argentina
> > > > Desarrollador 3 Estrellas
> > > > Msn:
> > > >
> > > > Maxi.da[arroba]gmail.com
> > > >
> > > > "hugo" escribió en el mensaje
> > > > news:
> > > > > Hola foro:
> > > > >
> > > > > Tango una base de datos en access que tiene tablas propias y


otras
> > > > > vinculadas con una base de datos de Progress.
> > > > > Estas se acceden a travez de un origen de datos ODBC (no OLE
> > > > > DB)
> > > > > Me gustaría saber como tener esas tablas de progress vinculadas


en
sql
> > > > > server.
> > > > > Estoy intentando con OPENROWSET
> > > > > Si sirve de algo, la cadena de conexion de access para las


tablas
> > > > > vinculadas
> > > > > es:
> > > > >
> > >



ODBC;DSN=NombreDSN;HOST=NombreHost;PORT%03;DB=distrib;UID=NombreUsuario;TA
> > > > > BLE=PUB.clientes
> > > > >
> > > > > Por otro lado si conecto un datagrid de vb6 con con control ADO
> > > > > datacontrol,
> > > > > la cadena que genera es (esto funciona bien):
> > > > > Provider=MSDASQL.1;Password=contraseña;Persist Security
Info=True;User
> > > > > ID=NombreUsuario;Data Source=NombreDSN
> > > > >
> > > > > El problema puntual es que si ejecuto esto:
> > > > > SELECT a.*
> > > > > FROM
OPENROWSET('MSDASQL','NombreDSN';'NombreUsuario';'contraseña',
> > > > > 'SELECT * FROM pub.clientes') AS a
> > > > >
> > > > > devuelve este error
> > > > > Servidor: mensaje 8114, nivel 16, estado 10, línea 1
> > > > > Error al convertir el tipo de datos DBTYPE_DBDATE a datetime.
> > > > >
> > > > > en cambio si ejectuto esto
> > > > > SELECT a.*
> > > > > FROM OPENROWSET('MSDASQL','BramarSL';'Alejandro';'12383',
> > > > > 'SELECT idCliente, nomcli FROM pub.clientes') AS a
> > > > >
> > > > > anda perfecto.
> > > > >
> > > > > Cómo puedo evitar ese error de conversión?
> > > > > Gracias por adelantado y saludos.
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> > >






Respuesta Responder a este mensaje
#9 hugo
27/04/2005 - 18:21 | Informe spam
Pero como decia, hay registros con fecha 01/01/0001.
Y perdon por la ignorancia, tengo miedo de decir una barbaridad. Pero en
finme arriesgo.
Datetime no arranca desde 1 de enero de 1753 ?
Igualmente ahora lo pruebo.
Gracias maxi.



"Maxi" escribió en el mensaje
news:%
Hugo, que pasa si volves a convertir a datetime? no sera que ese campo


tiene
basura?


Salu2
Maxi


"hugo" escribió en el mensaje
news:%
> Hola foro:
>
> Bueno esto hizo que funcione con todos los registros:
>
> SELECT a.*
> FROM OPENROWSET('MSDASQL','NombreDSN;'NombreUsuario';'Contraseña',
> 'SELECT idCliente, nomcli, CAST(fecalta AS varchar(10)) FROM
> pub.clientes') AS a
>
> No se puede convertir a datetime, genera el eror.
> A que otro tipo de datos que no sea texto lo podre convertir para poder
> hacer filtros del tipo between fecja1 and fecha2
>
> Gracias
>
>
> "hugo" escribió en el mensaje
> news:
>> Gracias a todos, lo voy a probar
>>
>>
>> "Alejandro Mesa" escribió en


el
>> mensaje news:
>> > Correccion,
>> >
>> > SELECT a.col1, ..., coln
>> > FROM OPENROWSET('MSDASQL','NombreDSN';'NombreUsuario';'contraseña',
>> > 'SELECT * FROM pub.clientes where coln != #01/01/0001#') AS a
>> >
>> > union all
>> >
>> > SELECT a.col1, ..., case when coln = '17530101' then null else coln


end
> as
>> > coln
>> > FROM OPENROWSET('MSDASQL','NombreDSN';'NombreUsuario';'contraseña',
>> > 'SELECT col1, ..., ''17530101'' as coln FROM pub.clientes where


coln
> > >> > #01/01/0001#') AS a
>> >
>> >
>> > AMB
>> >
>> >
>> > "Alejandro Mesa" wrote:
>> >
>> > > Trata haciendo una union de las filas con la columna fecha (la
>> > > llamare
>> coln)
>> > > coln > 01/01/0001 (yo no se como se especifica un valor de fecha en
>> progress)
>> > > y la seleccion de las demas columnas y null en la coln:
>> > >
>> > > SELECT a.col1, ..., coln
>> > > FROM OPENROWSET('MSDASQL','NombreDSN';'NombreUsuario';'contraseña',
>> > > 'SELECT * FROM pub.clientes where coln != #01/01/0001#') AS a
>> > >
>> > > union all
>> > >
>> > > SELECT a.col1, ..., null as coln
>> > > FROM OPENROWSET('MSDASQL','NombreDSN';'NombreUsuario';'contraseña',
>> > > 'SELECT * FROM pub.clientes where coln = #01/01/0001#') AS a
>> > >
>> > >
>> > > AMB
>> > >
>> > > "hugo" wrote:
>> > >
>> > > > Hola Maxi:
>> > > >
>> > > > Me parece que el problema esta en que algunos registros tienen
> fechas
>> con
>> > > > algún valor que sql server no puede convertir.
>> > > > Ya que si hago un select de las columas exceptuando la fecha anda
>> bien.
>> > > > Por otro lado, si realizo una consulta que devulva algunos
>> > > > registros
>> > > > incluyendo el campo fecha también anda.
>> > > > Falla puntualmente con unos registros que tienen un valor de
> fecha???
>> vaya
>> > > > se a saver cual??.
>> > > > El editor de progress muestra esos registros como 01/01/0001,
> mientras
>> que
>> > > > access los muestra como 01/01/1901.
>> > > > Sql server falla solo con esos registros, con los demas muestra
> todo,
>> fecha
>> > > > inclusive.
>> > > > Me gustaría solucionar este problema sin meter mano en la base de
>> Progress
>> > > > (sin cambiar el valor de esos registros).
>> > > > Se podrá convertir estos registros en la consulta de alguna
>> > > > manera??
>> > > > Si se te ocurre algo, tirame una soga por favor.
>> > > > Voy a seguir probando
>> > > > Gracias y saludos
>> > > >
>> > > >
>> > > >
>> > > > "Maxi" escribió en el mensaje
>> > > > news:
>> > > > > Hola, peo en el primer caso no estas pasando el user ni el pass
> no?
>> ademas
>> > > > > podrias de ver de vincular los servidores vinculados. Eso si,
> trata
>> de
>> > > > tener
>> > > > > los ultimos drivers del motor :-)
>> > > > >
>> > > > >
>> > > > > Maxi - Buenos Aires - Argentina
>> > > > > Desarrollador 3 Estrellas
>> > > > > Msn:
>> > > > >
>> > > > > Maxi.da[arroba]gmail.com
>> > > > >
>> > > > > "hugo" escribió en el mensaje
>> > > > > news:
>> > > > > > Hola foro:
>> > > > > >
>> > > > > > Tango una base de datos en access que tiene tablas propias y
> otras
>> > > > > > vinculadas con una base de datos de Progress.
>> > > > > > Estas se acceden a travez de un origen de datos ODBC (no OLE
>> > > > > > DB)
>> > > > > > Me gustaría saber como tener esas tablas de progress


vinculadas
> en
>> sql
>> > > > > > server.
>> > > > > > Estoy intentando con OPENROWSET
>> > > > > > Si sirve de algo, la cadena de conexion de access para las
> tablas
>> > > > > > vinculadas
>> > > > > > es:
>> > > > > >
>> > > >
>>
>


ODBC;DSN=NombreDSN;HOST=NombreHost;PORT%03;DB=distrib;UID=NombreUsuario;TA
>> > > > > > BLE=PUB.clientes
>> > > > > >
>> > > > > > Por otro lado si conecto un datagrid de vb6 con con control


ADO
>> > > > > > datacontrol,
>> > > > > > la cadena que genera es (esto funciona bien):
>> > > > > > Provider=MSDASQL.1;Password=contraseña;Persist Security
>> Info=True;User
>> > > > > > ID=NombreUsuario;Data Source=NombreDSN
>> > > > > >
>> > > > > > El problema puntual es que si ejecuto esto:
>> > > > > > SELECT a.*
>> > > > > > FROM
>> OPENROWSET('MSDASQL','NombreDSN';'NombreUsuario';'contraseña',
>> > > > > > 'SELECT * FROM pub.clientes') AS a
>> > > > > >
>> > > > > > devuelve este error
>> > > > > > Servidor: mensaje 8114, nivel 16, estado 10, línea 1
>> > > > > > Error al convertir el tipo de datos DBTYPE_DBDATE a datetime.
>> > > > > >
>> > > > > > en cambio si ejectuto esto
>> > > > > > SELECT a.*
>> > > > > > FROM OPENROWSET('MSDASQL','BramarSL';'Alejandro';'12383',
>> > > > > > 'SELECT idCliente, nomcli FROM pub.clientes') AS a
>> > > > > >
>> > > > > > anda perfecto.
>> > > > > >
>> > > > > > Cómo puedo evitar ese error de conversión?
>> > > > > > Gracias por adelantado y saludos.
>> > > > > >
>> > > > > >
>> > > > >
>> > > > >
>> > > >
>> > > >
>> > > >
>>
>>
>
>


Respuesta Responder a este mensaje
#10 Maxi
27/04/2005 - 18:27 | Informe spam
Ahh, ahi esta el problema :( si tenes registros con año 1 estamos en
problemas :( yo arreglaria esos registros (podes?)


Salu2
Maxi


"hugo" escribió en el mensaje
news:%23%23t$
Pero como decia, hay registros con fecha 01/01/0001.
Y perdon por la ignorancia, tengo miedo de decir una barbaridad. Pero en
finme arriesgo.
Datetime no arranca desde 1 de enero de 1753 ?
Igualmente ahora lo pruebo.
Gracias maxi.



"Maxi" escribió en el mensaje
news:%
Hugo, que pasa si volves a convertir a datetime? no sera que ese campo


tiene
basura?


Salu2
Maxi


"hugo" escribió en el mensaje
news:%
> Hola foro:
>
> Bueno esto hizo que funcione con todos los registros:
>
> SELECT a.*
> FROM OPENROWSET('MSDASQL','NombreDSN;'NombreUsuario';'Contraseña',
> 'SELECT idCliente, nomcli, CAST(fecalta AS varchar(10)) FROM
> pub.clientes') AS a
>
> No se puede convertir a datetime, genera el eror.
> A que otro tipo de datos que no sea texto lo podre convertir para poder
> hacer filtros del tipo between fecja1 and fecha2
>
> Gracias
>
>
> "hugo" escribió en el mensaje
> news:
>> Gracias a todos, lo voy a probar
>>
>>
>> "Alejandro Mesa" escribió en


el
>> mensaje news:
>> > Correccion,
>> >
>> > SELECT a.col1, ..., coln
>> > FROM OPENROWSET('MSDASQL','NombreDSN';'NombreUsuario';'contraseña',
>> > 'SELECT * FROM pub.clientes where coln != #01/01/0001#') AS a
>> >
>> > union all
>> >
>> > SELECT a.col1, ..., case when coln = '17530101' then null else coln


end
> as
>> > coln
>> > FROM OPENROWSET('MSDASQL','NombreDSN';'NombreUsuario';'contraseña',
>> > 'SELECT col1, ..., ''17530101'' as coln FROM pub.clientes where


coln
> >> >> > #01/01/0001#') AS a
>> >
>> >
>> > AMB
>> >
>> >
>> > "Alejandro Mesa" wrote:
>> >
>> > > Trata haciendo una union de las filas con la columna fecha (la
>> > > llamare
>> coln)
>> > > coln > 01/01/0001 (yo no se como se especifica un valor de fecha
>> > > en
>> progress)
>> > > y la seleccion de las demas columnas y null en la coln:
>> > >
>> > > SELECT a.col1, ..., coln
>> > > FROM
>> > > OPENROWSET('MSDASQL','NombreDSN';'NombreUsuario';'contraseña',
>> > > 'SELECT * FROM pub.clientes where coln != #01/01/0001#') AS a
>> > >
>> > > union all
>> > >
>> > > SELECT a.col1, ..., null as coln
>> > > FROM
>> > > OPENROWSET('MSDASQL','NombreDSN';'NombreUsuario';'contraseña',
>> > > 'SELECT * FROM pub.clientes where coln = #01/01/0001#') AS a
>> > >
>> > >
>> > > AMB
>> > >
>> > > "hugo" wrote:
>> > >
>> > > > Hola Maxi:
>> > > >
>> > > > Me parece que el problema esta en que algunos registros tienen
> fechas
>> con
>> > > > algún valor que sql server no puede convertir.
>> > > > Ya que si hago un select de las columas exceptuando la fecha
>> > > > anda
>> bien.
>> > > > Por otro lado, si realizo una consulta que devulva algunos
>> > > > registros
>> > > > incluyendo el campo fecha también anda.
>> > > > Falla puntualmente con unos registros que tienen un valor de
> fecha???
>> vaya
>> > > > se a saver cual??.
>> > > > El editor de progress muestra esos registros como 01/01/0001,
> mientras
>> que
>> > > > access los muestra como 01/01/1901.
>> > > > Sql server falla solo con esos registros, con los demas muestra
> todo,
>> fecha
>> > > > inclusive.
>> > > > Me gustaría solucionar este problema sin meter mano en la base
>> > > > de
>> Progress
>> > > > (sin cambiar el valor de esos registros).
>> > > > Se podrá convertir estos registros en la consulta de alguna
>> > > > manera??
>> > > > Si se te ocurre algo, tirame una soga por favor.
>> > > > Voy a seguir probando
>> > > > Gracias y saludos
>> > > >
>> > > >
>> > > >
>> > > > "Maxi" escribió en el mensaje
>> > > > news:
>> > > > > Hola, peo en el primer caso no estas pasando el user ni el
>> > > > > pass
> no?
>> ademas
>> > > > > podrias de ver de vincular los servidores vinculados. Eso si,
> trata
>> de
>> > > > tener
>> > > > > los ultimos drivers del motor :-)
>> > > > >
>> > > > >
>> > > > > Maxi - Buenos Aires - Argentina
>> > > > > Desarrollador 3 Estrellas
>> > > > > Msn:
>> > > > >
>> > > > > Maxi.da[arroba]gmail.com
>> > > > >
>> > > > > "hugo" escribió en el mensaje
>> > > > > news:
>> > > > > > Hola foro:
>> > > > > >
>> > > > > > Tango una base de datos en access que tiene tablas propias y
> otras
>> > > > > > vinculadas con una base de datos de Progress.
>> > > > > > Estas se acceden a travez de un origen de datos ODBC (no OLE
>> > > > > > DB)
>> > > > > > Me gustaría saber como tener esas tablas de progress


vinculadas
> en
>> sql
>> > > > > > server.
>> > > > > > Estoy intentando con OPENROWSET
>> > > > > > Si sirve de algo, la cadena de conexion de access para las
> tablas
>> > > > > > vinculadas
>> > > > > > es:
>> > > > > >
>> > > >
>>
>


ODBC;DSN=NombreDSN;HOST=NombreHost;PORT%03;DB=distrib;UID=NombreUsuario;TA
>> > > > > > BLE=PUB.clientes
>> > > > > >
>> > > > > > Por otro lado si conecto un datagrid de vb6 con con control


ADO
>> > > > > > datacontrol,
>> > > > > > la cadena que genera es (esto funciona bien):
>> > > > > > Provider=MSDASQL.1;Password=contraseña;Persist Security
>> Info=True;User
>> > > > > > ID=NombreUsuario;Data Source=NombreDSN
>> > > > > >
>> > > > > > El problema puntual es que si ejecuto esto:
>> > > > > > SELECT a.*
>> > > > > > FROM
>> OPENROWSET('MSDASQL','NombreDSN';'NombreUsuario';'contraseña',
>> > > > > > 'SELECT * FROM pub.clientes') AS a
>> > > > > >
>> > > > > > devuelve este error
>> > > > > > Servidor: mensaje 8114, nivel 16, estado 10, línea 1
>> > > > > > Error al convertir el tipo de datos DBTYPE_DBDATE a
>> > > > > > datetime.
>> > > > > >
>> > > > > > en cambio si ejectuto esto
>> > > > > > SELECT a.*
>> > > > > > FROM OPENROWSET('MSDASQL','BramarSL';'Alejandro';'12383',
>> > > > > > 'SELECT idCliente, nomcli FROM pub.clientes') AS a
>> > > > > >
>> > > > > > anda perfecto.
>> > > > > >
>> > > > > > Cómo puedo evitar ese error de conversión?
>> > > > > > Gracias por adelantado y saludos.
>> > > > > >
>> > > > > >
>> > > > >
>> > > > >
>> > > >
>> > > >
>> > > >
>>
>>
>
>






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