用VC+sql2000做了一个小软件,前面编写代码的时候连接的是本地的数据库,但是现在想改成连接远程数据库,不知如何下手。前面编写代码的时候为本地数据库的各个表创建了相关的类,比如为td_goods这个表创建了CGoodsset类,然后VC自动编写了连接数据库的代码,如下:
CString CGoodsset::GetDefaultConnect()
{
return _T("ODBC;DSN=td_shop");
}CString CGoodsset::GetDefaultSQL()
{
return _T("[dbo].[td_goods]");
}以下是自己编写的打开表td_goods的代码:
UpdateData(TRUE);
CString sqlStr;
sqlStr.Format("select * from td_goods"); //载入数据库相关表的数据
td_goodsset = new CGoodsset(&((CSHOPApp*)AfxGetApp())->m_DB);
if(!td_goodsset->Open(AFX_DB_USE_DEFAULT_TYPE,sqlStr))
{
AfxMessageBox("tb_goods表打开失败!");
}
DisplayRecord();
if(td_goodsset->IsOpen())
{
td_goodsset->Close();
delete td_goodsset;
} 如果改成远程数据库的连接,如何在原来的基础上进行修改,比如上面提到的打开td_goods这个表所要修改的代码?
CString CGoodsset::GetDefaultConnect()
{
return _T("ODBC;DSN=td_shop");
}CString CGoodsset::GetDefaultSQL()
{
return _T("[dbo].[td_goods]");
}以下是自己编写的打开表td_goods的代码:
UpdateData(TRUE);
CString sqlStr;
sqlStr.Format("select * from td_goods"); //载入数据库相关表的数据
td_goodsset = new CGoodsset(&((CSHOPApp*)AfxGetApp())->m_DB);
if(!td_goodsset->Open(AFX_DB_USE_DEFAULT_TYPE,sqlStr))
{
AfxMessageBox("tb_goods表打开失败!");
}
DisplayRecord();
if(td_goodsset->IsOpen())
{
td_goodsset->Close();
delete td_goodsset;
} 如果改成远程数据库的连接,如何在原来的基础上进行修改,比如上面提到的打开td_goods这个表所要修改的代码?
1、在我同学的电脑上安装了SQL2000(sp4补丁)、SQL Server身份验证,附加自己的数据库,在SQL 网络使用工具中设置了TCP/IP协议和多命名管道,端口默认为1433,隐藏服务器没选上
2、通过DOC命令成功ping上,通过telnet <服务器IP地址> 1433,也能成功,通过netstat -a -n显示能监听我同学的1433端口
3、在我的电脑上新建一个SQL server注册,将可用的服务器设置成我同学电脑的IP,将我同学的防火墙,杀毒软件关闭后注册成功,最后打开新建的SQL server组能正常访问我同学电脑上的数据库。
4,、修改相应代码,如下:
CString CUserset::GetDefaultConnect()
{
return _T("ODBC;driver={SQL Server};server=171.39.***.***;database=td_shop;uid=sa;pwd=pygood ");
// return _T("ODBC;DSN=td_shop");
}
CString CUserset::GetDefaultSQL()
{
return _T("[ODBC;Driver={SQL Server};Server=171.39.***.***;
Uid=sa;Pwd=pygood;database=td_shop].[td_users]");
//return _T("[dbo].[td_users]");
}//打开td_users表
sqluser.Format("select * from[ODBC;Driver={SQL Server};Server=171.39.***.***;Uid=sa;Pwd=pygood;database=td_shop].td_users where Username = '%s' and Pwd = '%s'",m_username,m_password);运行时在显示的SQL Server登录对话框中,点击选项,将工作站的ID改成我同学电脑的IP(或者Server的名称),都提示对象名
'ODBC;Driver={SQL Server};Server=171.39.164.152;Uid=sa;Pwd=pygood;database=td_shop.td_users'无效,什么问题呢,惆怅呀......