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

#11 hugo
27/04/2005 - 18:37 | Informe spam
mm y no se.
Como poder, puedo, pero prefiero pedirles permiso a la gente que desarrollo
el sistema y administra la base de datos del mismo.
De todas formas ya me quedo claro que es ese el problema.
Gracias y saludos.



"Maxi" escribió en el mensaje
news:
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.
>> >> > > > > >
>> >> > > > > >
>> >> > > > >
>> >> > > > >
>> >> > > >
>> >> > > >
>> >> > > >
>> >>
>> >>
>> >
>> >
>>
>>
>
>


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