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

#1 Maxi
27/04/2005 - 03:51 | Informe spam
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
#2 hugo
27/04/2005 - 05:25 | Informe spam
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
#3 Maxi
27/04/2005 - 13:47 | Informe spam
Hola, mmm puede ser, fijate entonces el formato del usuario que tiene? sino
usa SET DATEFORMAT


Salu2
Maxi


"hugo" escribió en el mensaje
news:
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
#4 Alejandro Mesa
27/04/2005 - 13:58 | Informe spam
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
#5 Alejandro Mesa
27/04/2005 - 14:14 | Informe spam
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 Respuesta Tengo una respuesta
Search Busqueda sugerida