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]";
也是同样错误

请问怎么解决?
...全文
162 17 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiangcun 2004-12-23
  • 打赏
  • 举报
回复
表会有什么问题啊?
其他按照同样方式建立的表没有问题,读取正常,而且还是在同一个数据库中

。。。。。。。。这个太蹊跷了
zjcxc 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 '表不存在'
zjcxc 2004-12-22
  • 打赏
  • 举报
回复
--执行这个,有结果吗?
select * from sysobjects where name='Product_Type_Manage'
zjcxc 2004-12-22
  • 打赏
  • 举报
回复
你没选对数据库吧?
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
  • 打赏
  • 举报
回复
没有用查询分析器,一会儿试试看
zjcxc 2004-12-22
  • 打赏
  • 举报
回复
查询分析器中执行呢?

27,582

社区成员

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

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