最近做东西遇到的一个问题(ODBC)

wudeshou82666 2008-06-30 09:25:01
我继承了CRecordSet类,生成MyRecord类
我在调用MyRecord类对象打开数据源的时候总是会弹出登陆对话框,要求输入密码。
可是我不希望那样,在网上搜索下,看到可以去掉登陆对话框。
就是设置CDataBase *pDb;
pDb->OpenEx("DSN=mydata;UID=winnix;PWD=winnix",CDatabase::noOdbcDialog);
然后我在MyRecord类的构造函数中设置如下:
myrecord::myrecord(CDatabase* pdb)
: CRecordset(pdb)
{

m_nDefaultType = dynaset;
pdb->OpenEx("DSN=mydata;UID=winnix;PWD=winnix",CDatabase::noOdbcDialog);

}
这样编译链接都没有问题,可是在运行的时候就挂掉了
访问了不能读的内存区域。
忘高手指点。
我CRecordSet对象的CDataBase对象在哪里,要怎么去设置然后消除掉登陆对话框
谢谢
...全文
60 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
内存泄漏 2008-06-30
  • 打赏
  • 举报
回复
我给你发送了CSDN消息,方便的话,把代码发给我看看..
wudeshou82666 2008-06-30
  • 打赏
  • 举报
回复
确实找不到有CDatabase类型变量定义哦
应该是我在用CLASSWIZARD建立MyRecord类的时候生成了的
可是在MyRecord类定义里面没有。郁闷。。。
wudeshou82666 2008-06-30
  • 打赏
  • 举报
回复
断点跟踪以后确实发现pdb指针是野指针,没有初始化
pdb 0x00000000 {CDatabase}
现在关键是怎么样来初始化它。
为什么我不加pdb->OpenEx("DSN=mydata;UID=winnix;PWD=winnix",CDatabase::noOdbcDialog); 这句,弹出登陆对话框,可以正确连上数据库。
谢谢大家的关注
内存泄漏 2008-06-30
  • 打赏
  • 举报
回复
找一下CDatabase类型变量定义的地方..
wudeshou82666 2008-06-30
  • 打赏
  • 举报
回复
而且生成MyRecord类中也没有CDatabase对象数据成员啊
wudeshou82666 2008-06-30
  • 打赏
  • 举报
回复
估计没有啊
我都不知道从哪里来的
是生成我的派生类时的参数啊
内存泄漏 2008-06-30
  • 打赏
  • 举报
回复
你的CDatabase传递进来的是一个指针, 这个指针在传递进来之前申请了内存空间没有??
BUbuWander 2008-06-30
  • 打赏
  • 举报
回复
这个问题我以前也碰到过,看你用什么数据库了,

sql-server好像把sa用户改为以Windows用户登录就没有对话框了
闪破风浪 2008-06-30
  • 打赏
  • 举报
回复
断点追踪一下?
看看是不是指针没有初始化~
wudeshou82666 2008-06-30
  • 打赏
  • 举报
回复
问题已经解决,多谢大家支持!
再次表示感谢

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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