vc++检索sqlserver数据库中的问题-急

xiangcun 2004-12-22 01:49:59
用vc++作一个桌面程序
其中与数据库操作中有这样的一句
CString mSqlStr;
mSqlStr="SELECT * FROM [dbo].[Product_Type_Manage]";

if (!m_producttypeset.Open(CRecordset::Snapshot,mSqlStr))
AfxMessageBox("数据打开失败!");
返回结果正确

当查询语句用mSqlStr="SELECT type FROM [dbo].[Product_Type_Manage]";
//type是表中的一个字段名
出现错误描述:无效的描述器索引
mSqlStr="SELECT distinct type FROM [dbo].[Product_Type_Manage]";
也是同样错误

请问怎么解决?
...全文
106 点赞 收藏 17
写回复
17 条回复
xiangcun 2004年12月23日
表会有什么问题啊?
其他按照同样方式建立的表没有问题,读取正常,而且还是在同一个数据库中

。。。。。。。。这个太蹊跷了
回复 点赞
应该不可能不支持,除非你的表有问题,或者是表中没有 type 这个字段
回复 点赞
xiangcun 2004年12月22日
有没有可能vc++操作数据库的时候不支持这句话:?

mSqlStr="SELECT type FROM [dbo].[Product_Type_Manage]";

if (!m_producttypeset.Open(CRecordset::Snapshot,mSqlStr))
回复 点赞
xiangcun 2004年12月22日
在查询分析器里边结果是对的,返回结果也正确
但是到了程序里边就会提示:无效的描述器索引。

这还有可能是什么问题?
回复 点赞
NinGoo 2004年12月22日
請確認一下你的Product_Type_Manage所在的server名,db名和owner名

不妨先寫成
SELECT type FROM server_name.db_name.owner.Product_Type_Manage
在查詢分析器裏執行看結果
回复 点赞
xiangcun 2004年12月22日
采用你提供的分析代码,vinsonshen(猪骨褒咸鱼->味道没得顶) (

结果是表存在
但是仍然不能返回正确结果
回复 点赞
vinsonshen 2004年12月22日
use 你的库
go
if exists (select * from dbo.sysobjects where name='Product_Type_Manage')
print '表存在'
else
print '表不存在'
回复 点赞
vinsonshen 2004年12月22日
选定你的数据并确认表的所有者为dbo,且表名有存在~~

use 你的库
go
if exists (select * from dbo.sysobjects where name='Product_Type_Manage')
print '表不存在'
else
print '表不存在'
回复 点赞
--执行这个,有结果吗?
select * from sysobjects where name='Product_Type_Manage'
回复 点赞
你没选对数据库吧?
回复 点赞
xiangcun 2004年12月22日
试验vinsonshen(猪骨褒咸鱼->味道没得顶
的方案,返回结果:
Server: Msg 2501, Level 16, State 1, Line 2
Could not find a table or object named '[dbo].[Product_Type_Manage]'. Check sysobjects.

可是用mSqlStr="SELECT * FROM [dbo].[Product_Type_Manage]";
时候可以返回正确结果

??
回复 点赞
vinsonshen 2004年12月22日
试试:

exec sp_dboption '库名','single user',true
DBCC CHECKTABLE ('dbo.Product_Type_Manage',REPAIR_REBUILD)
exec sp_dboption '库名','single user',false
回复 点赞
vinsonshen 2004年12月22日
或确定'dbo.Product_Type_Manage'是否存在~~
回复 点赞
vinsonshen 2004年12月22日
这样说Product_Type_Manage 的所有者不是dbo,改成其对应的所有者试试
回复 点赞
xiangcun 2004年12月22日
查询分析器结果
:Server: Msg 208, Level 16, State 1, Line 1
Invalid object name 'dbo.Product_Type_Manage'.
回复 点赞
xiangcun 2004年12月22日
没有用查询分析器,一会儿试试看
回复 点赞
查询分析器中执行呢?
回复 点赞
发动态
发帖子
应用实例
创建于2007-09-28

1.1w+

社区成员

6.8w+

社区内容

MS-SQL Server 应用实例
社区公告
暂无公告