《Visual C++ 数据库系统开发完全手册》的商品销售管理系统编译通过,但数据库链接失败!
                 	
                        发表在C语言图书答疑
                        2008-04-28                                                
                    		
                                                                            	
                        
                        
                    
                    
                    	是否精华
                    	是
                    	否
                    
                    
                    
                            版块置顶:
                            是
                            否
                        
                    
                                           <STRONG><FONT size=4>您好!</FONT></STRONG> 
<DIV><FONT size=4>     我是贵公司所编写的图书的读者,现在使用《Visual C++ 数据库系统开发完全手册》一书中遇到了一个问题,想请求您的帮助!</FONT></DIV>
<DIV><FONT size=4>     我在使用该书所提供的系统(所带光盘中的)时,出现在如下问题。</FONT></DIV>
<DIV><FONT size=4>     我使用的是《商品销售管理系统》,我按照本书光盘中的教程的步骤配置了该系统的SQL2000SERVER数据库,分别在不同的机器上运行, 有的可以正常运行(学校机房的windows 2000系统上),而有的机器上是数据库链接失败(在自己的机器上和同学的机器上windows xp系统),在系统登录对话框还没有出现的时候就弹出对话框提示“数据库链接失败,程序异常关闭”(执行了如下代码:</FONT></DIV><FONT size=4>
<DIV>……</DIV>
<DIV> </DIV>
<DIV><FONT color=#0000f0>if(!m_hDatabase.InitData())<BR> {<BR>  MessageBox(NULL, "数据库访问失败,程序异常关闭!", "出错啦", MB_OK) ;<BR>  exit(1) ;<BR> }</FONT></DIV>
<DIV><FONT color=#0000f0>……</FONT></DIV>
<DIV>)。</DIV>
<DIV>(<FONT size=3>具体出错相关代码如下面附加内容所示。)</FONT></DIV>
<DIV><FONT size=3>      我设置断点调试的时候在调试窗口中显示的是“[DBNETLIB][ConnectionOpen(Connect()).]SQL Server 不存在或者拒绝访问。”!</FONT></DIV></FONT>
<DIV><FONT size=4>      开始,我想到可能是不支持windows xp 系统,但是我想到去年我在windows xp上运行过,正确过!好象是在按照光盘中教程所讲的配置外,还另外配置了SQL中的一个地方,但是我现在怎么也想不起来是怎么配置了。在这些运行的机器上,我对数据库是同样的配置!为什么就有的不能用而有的又可以用呢?我想请您帮助我分析一下这是怎么回事!(我使用《学生信息管理系统》很正常,哪都可以用.)</FONT></DIV>
<DIV><FONT size=4>    谢谢!</FONT></DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV>附:出错地方代码(红色标记的地方打开数据库失败,从而执行了蓝色代码)</DIV>
<DIV> </DIV>
<DIV>int CDatabase::InitData()<BR>{<BR> char m_szConnect[512];<BR> char m_szTmp[1024]="" ;<BR> char m_szHost[20], m_szUser[20], m_szPwd[20], m_szDef[20] ;<BR> GetPrivateProfileString("数据库", "主机名", NULL, m_szHost, sizeof(m_szHost), IniFile) ;<BR> GetPrivateProfileString("数据库", "用户名", NULL, m_szUser, sizeof(m_szUser), IniFile) ;<BR> GetPrivateProfileString("数据库", "密码", NULL, m_szPwd, sizeof(m_szPwd), IniFile) ;<BR> GetPrivateProfileString("数据库", "默认库", NULL, m_szDef, sizeof(m_szDef), IniFile) ;<BR> try<BR> {<BR>  //连接XdData<BR>  HRESULT hr = m_Connection.CreateInstance(__uuidof(Connection));<BR>  sprintf(m_szConnect,"provider = sqloledb;server=%s;database=%s;", m_szHost, m_szDef);<BR>  <FONT color=#f00000>hr=m_Connection->Open(_bstr_t(m_szConnect),_bstr_t(m_szUser),_bstr_t(m_szPwd),-1);<BR></FONT>  sprintf(m_szTmp, "数据库连接成功!");<BR>  //连接XdData<BR> }<BR> catch(_com_error & e) <BR> {<BR>  sprintf(m_szTmp, "数据库打开失败,错误原因:%s\n",LPCTSTR(e.Description()));<BR>  return 0 ;<BR> }<BR> return 1 ;<BR>}</DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV>……</DIV>
<DIV> </DIV>
<DIV><FONT color=#0000f0>if(!m_hDatabase.InitData())<BR> {<BR>  MessageBox(NULL, "数据库访问失败,程序异常关闭!", "出错啦", MB_OK) ;<BR>  exit(1) ;<BR> }</FONT></DIV>
<DIV><FONT color=#0000f0>……</FONT></DIV>
                
        	
        
        
    <DIV><FONT size=4>     我是贵公司所编写的图书的读者,现在使用《Visual C++ 数据库系统开发完全手册》一书中遇到了一个问题,想请求您的帮助!</FONT></DIV>
<DIV><FONT size=4>     我在使用该书所提供的系统(所带光盘中的)时,出现在如下问题。</FONT></DIV>
<DIV><FONT size=4>     我使用的是《商品销售管理系统》,我按照本书光盘中的教程的步骤配置了该系统的SQL2000SERVER数据库,分别在不同的机器上运行, 有的可以正常运行(学校机房的windows 2000系统上),而有的机器上是数据库链接失败(在自己的机器上和同学的机器上windows xp系统),在系统登录对话框还没有出现的时候就弹出对话框提示“数据库链接失败,程序异常关闭”(执行了如下代码:</FONT></DIV><FONT size=4>
<DIV>……</DIV>
<DIV> </DIV>
<DIV><FONT color=#0000f0>if(!m_hDatabase.InitData())<BR> {<BR>  MessageBox(NULL, "数据库访问失败,程序异常关闭!", "出错啦", MB_OK) ;<BR>  exit(1) ;<BR> }</FONT></DIV>
<DIV><FONT color=#0000f0>……</FONT></DIV>
<DIV>)。</DIV>
<DIV>(<FONT size=3>具体出错相关代码如下面附加内容所示。)</FONT></DIV>
<DIV><FONT size=3>      我设置断点调试的时候在调试窗口中显示的是“[DBNETLIB][ConnectionOpen(Connect()).]SQL Server 不存在或者拒绝访问。”!</FONT></DIV></FONT>
<DIV><FONT size=4>      开始,我想到可能是不支持windows xp 系统,但是我想到去年我在windows xp上运行过,正确过!好象是在按照光盘中教程所讲的配置外,还另外配置了SQL中的一个地方,但是我现在怎么也想不起来是怎么配置了。在这些运行的机器上,我对数据库是同样的配置!为什么就有的不能用而有的又可以用呢?我想请您帮助我分析一下这是怎么回事!(我使用《学生信息管理系统》很正常,哪都可以用.)</FONT></DIV>
<DIV><FONT size=4>    谢谢!</FONT></DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV>附:出错地方代码(红色标记的地方打开数据库失败,从而执行了蓝色代码)</DIV>
<DIV> </DIV>
<DIV>int CDatabase::InitData()<BR>{<BR> char m_szConnect[512];<BR> char m_szTmp[1024]="" ;<BR> char m_szHost[20], m_szUser[20], m_szPwd[20], m_szDef[20] ;<BR> GetPrivateProfileString("数据库", "主机名", NULL, m_szHost, sizeof(m_szHost), IniFile) ;<BR> GetPrivateProfileString("数据库", "用户名", NULL, m_szUser, sizeof(m_szUser), IniFile) ;<BR> GetPrivateProfileString("数据库", "密码", NULL, m_szPwd, sizeof(m_szPwd), IniFile) ;<BR> GetPrivateProfileString("数据库", "默认库", NULL, m_szDef, sizeof(m_szDef), IniFile) ;<BR> try<BR> {<BR>  //连接XdData<BR>  HRESULT hr = m_Connection.CreateInstance(__uuidof(Connection));<BR>  sprintf(m_szConnect,"provider = sqloledb;server=%s;database=%s;", m_szHost, m_szDef);<BR>  <FONT color=#f00000>hr=m_Connection->Open(_bstr_t(m_szConnect),_bstr_t(m_szUser),_bstr_t(m_szPwd),-1);<BR></FONT>  sprintf(m_szTmp, "数据库连接成功!");<BR>  //连接XdData<BR> }<BR> catch(_com_error & e) <BR> {<BR>  sprintf(m_szTmp, "数据库打开失败,错误原因:%s\n",LPCTSTR(e.Description()));<BR>  return 0 ;<BR> }<BR> return 1 ;<BR>}</DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV>……</DIV>
<DIV> </DIV>
<DIV><FONT color=#0000f0>if(!m_hDatabase.InitData())<BR> {<BR>  MessageBox(NULL, "数据库访问失败,程序异常关闭!", "出错啦", MB_OK) ;<BR>  exit(1) ;<BR> }</FONT></DIV>
<DIV><FONT color=#0000f0>……</FONT></DIV>

 
	
                                                 VIP会员
VIP会员 购物车
购物车

 私信
                         私信 
                     发表新帖
发表新帖 立即签到
立即签到 
        		  
        		 
         		 关注
关注
                  回复
 回复 支持(
                	支持( 反对(
                    反对( 
                







 
                     
                     
					 
						 
						 
						 
						