建立与sybase的数据库链接后,遇到问题!

bhw0871 2004-11-10 11:25:18
建立好数据库连接:
exec sp_addlinkedserver 'Sybase1', ' ', 'MSDASQL', NULL, NULL,'Driver={Sybase System 11};Database=jghht;Srvr=test;UID=sa;PWD=;'
查询sybase的数据时,遇到表中有tinyint类型的字段时报错误:
例如:
select * from Sybase1.jghht.dbo.s_class
/************
服务器: 消息 7356,级别 16,状态 1,行 1
OLE DB 提供程序 'MSDASQL' 为列提供的元数据不一致。执行时更改了元数据信息。
OLE DB 错误跟踪[Non-interface error: Column 'id' (compile-time ordinal 1) of object 'test.dbo.bhwtest' was reported to have a DBTYPE of 16 at compile time and 17 at run time]。
*************/
如果没有这样的字段则查询正常!
DBTYPE 查帮助后看好像是数据类型映射的问题?
...全文
214 19 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
bhw0871 2004-12-06
  • 打赏
  • 举报
回复
谢谢参与
liuhszh 2004-11-26
  • 打赏
  • 举报
回复
如果不能改动,你在SYBASE中建立一个VIEW,在VIEW中将tinyint改为int
bhw0871 2004-11-25
  • 打赏
  • 举报
回复
sybase的数据库不能随便改动,是否只能是把需要的数据用dts导过来,在进行处理!
在dts里面怎么访问到它连接的数据库的表,能否在建立连接以后转换这些表,就像用存储过程似的!
最好是能像建立链接那样访问到表
select * from Sybase1.jghht.dbo.s_class
liuhszh 2004-11-24
  • 打赏
  • 举报
回复
呵呵没仔细看
请在sybase中将tinyint类型改为int即可

我以前试过,肯定可以。
官方的文档在微软知识库中你可以去搜索一下
liuhszh 2004-11-24
  • 打赏
  • 举报
回复
bhw0871() 说的正确
sybase与sqlserver之间有类型转换错误,数据类型映射.

你不用select *,一个一个的试一下,找到所有出错的列。
将其数据类型改为sybase和sql都能接受的就可以了。
davorsuker39 2004-11-23
  • 打赏
  • 举报
回复
学习
cainiao000 2004-11-23
  • 打赏
  • 举报
回复
帮你顶
bhw0871 2004-11-12
  • 打赏
  • 举报
回复
嘿嘿,来点意见啊!
davorsuker39 2004-11-12
  • 打赏
  • 举报
回复
学习中
Andy__Huang 2004-11-10
  • 打赏
  • 举报
回复
可能是你選擇的驅動程序類型不對﹖
bhw0871 2004-11-10
  • 打赏
  • 举报
回复
exec sp_addlinkedsrvlogin 'Sybase1','false',null,'sa',''
select * from Sybase1.jghht.dbo.s_class
这样吗?
结果还是一样的啊!
/***********
(所影响的行数为 0 行)


(所影响的行数为 1 行)


(所影响的行数为 0 行)


(所影响的行数为 1 行)

服务器: 消息 7356,级别 16,状态 1,行 2
OLE DB 提供程序 'MSDASQL' 为列提供的元数据不一致。执行时更改了元数据信息。
OLE DB 错误跟踪[Non-interface error: Column 'levels' (compile-time ordinal 2) of object 'jghht.dbo.s_class' was reported to have a DBTYPE of 16 at compile time and 17 at run time]。
**********/
Andy__Huang 2004-11-10
  • 打赏
  • 举报
回复
你沒有創建鏈接用戶名

exec sp_addlinkedserver 'Sybase1', ' ', 'MSDASQL', NULL, NULL,'Driver={Sybase System 11};Database=jghht;Srvr=test;UID=sa;PWD=;'

exec sp_addlinkedsrvlogin 'Sybase1','false',null,'用户名','密码'

bhw0871 2004-11-10
  • 打赏
  • 举报
回复
唉!吃完饭在来......
bhw0871 2004-11-10
  • 打赏
  • 举报
回复
用dts查看的数据好像没有问题,可是那个不好用脚本对sybase的数据进行处理在导入sqlserver!
快来解疑释惑啊!
bhw0871 2004-11-10
  • 打赏
  • 举报
回复
sybase与sqlserver之间有类型转换错误,数据类型映射.
bhw0871 2004-11-10
  • 打赏
  • 举报
回复
来人看啊!
bhw0871 2004-11-10
  • 打赏
  • 举报
回复
select * from dbo.s_class
不是吧?这个可以查询?
结果:
/******
服务器: 消息 208,级别 16,状态 1,行 1
对象名 'dbo.s_class' 无效。
*****/
逍遥的心 2004-11-10
  • 打赏
  • 举报
回复
select * from Sybase1.jghht.dbo.s_class
改成
select * from dbo.s_class
bhw0871 2004-11-10
  • 打赏
  • 举报
回复
那么应该是什么呢?

27,582

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧