我的服务器名;WWW-FA8A5275D46,数据库名:HrMan ,没有密码。用VC60.0 建立一个基于对话框的MFC,在导入MSADO15.DLL 后,增加按钮,并编辑代码,编译没错,运行后,点击按钮,就出错。XP系统 ,装server 2000,没有设定数据源。
void CMy132Dlg::OnButton1()
{
// TODO: Add your control notification handler code here
CoInitialize(NULL);
_ConnectionPtr pConn(__uuidof(Connection));
CString strConnectTmp;
_bstr_t NAME="WWW-FA8A5275D46";
_bstr_t UID="sa";
_bstr_t DBN="HrMan";
_bstr_t PID="";
strConnectTmp.Format("Provider=SQL Server;Server=%s;Database=%s;uid=%s;pwd=%s;",NAME,DBN,UID,PID);
_bstr_t strConnect=strConnectTmp;
pConn->Open(strConnect,"","",-1);
pConn->Close();
pConn.Release();
CoUninitialize();
}
void CMy132Dlg::OnButton1()
{
// TODO: Add your control notification handler code here
CoInitialize(NULL);
_ConnectionPtr pConn(__uuidof(Connection));
CString strConnectTmp;
_bstr_t NAME="WWW-FA8A5275D46";
_bstr_t UID="sa";
_bstr_t DBN="HrMan";
_bstr_t PID="";
strConnectTmp.Format("Provider=SQL Server;Server=%s;Database=%s;uid=%s;pwd=%s;",NAME,DBN,UID,PID);
_bstr_t strConnect=strConnectTmp;
pConn->Open(strConnect,"","",-1);
pConn->Close();
pConn.Release();
CoUninitialize();
}
解决方案 »
- 非模态对话框create时出错
- CString到底是MFC的类型还是ATL的类型?为什么有_ATL_CSTRING_EXPLICIT_CONSTRUCTORS这个宏?
- 如何使用CDatabase打开一个数据库
- 急!为什么将.ico文件中的图形粘贴到工具栏中后运行程序发现工具栏中的图片色彩失真???
- 我在WIN98中用CreateProcess重定向到管道的控制台文本无法获得?
- 各位新年好!明天就要回家了,感谢各位的帮助。只能给100分,先来先给。取前10位。
- 如何将7bit编码转换成ASCII?
- vc里怎样按路径动态打开一个bmp文件?
- 求助 用vc++实现基于MFC实现OpenGL贝塞尔曲面的绘制
- joke100 come!
- 请问复选框在系统哪个文件中?
- 关于在OnInitDialog内响应WM_SIZE 及 处理无标题对话框最小化至托盘区的问题
改为
pConn->Open(strConnect,"","",adModeUnknown);
#import "c:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF") rename("BOF","adoBOF")
//ADO放置路径 一般为C:/
///////////////////////////////////////////////////////////////////////////
连接
// 初始化OLE/COM库环境
::CoInitialize(NULL);
try
{
// 创建Connection对象
m_pConnection.CreateInstance("ADODB.Connection");
// 设置连接字符串,必须是BSTR型或者_bstr_t类型
CString str;
str.Format("Provider=SQLOLEDB;Server=%s;database=%s;uid=%s;pwd=%s",dataip,database,uid,pwd);
_bstr_t strConnect = str;
HRESULT hr=m_pConnection->Open(strConnect,"","",adModeUnknown);
/*
具体调整
*/
}
// 捕捉异常
catch(_com_error e)
{
return ;
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 关闭记录集和连接
if (m_pRecordset != NULL)
{
try
{
m_pConnection->Close();
}
catch (_com_error e)
{
m_pConnection == NULL;
return;
}
}
if (m_pConnection!=NULL)
{
try
{
m_pConnection->Close();
}
catch (_com_error e)
{
m_pConnection == NULL;
//AfxMessageBox(e.Description());
return;
}
}
// 释放环境
::CoUninitialize();
//////////////////////////////////////////////////////////////////////
上面这句话中的Provider的值不应该是SQL Server,而应该是SQLOLEDB,即改为:
strConnectTmp.Format("Provider=SQLOLEDB;Server=%s;Database=%s;uid=%s;pwd=%s;",NAME,DBN,UID,PID);
连接问题已解决:用ADO 控件找连接字串:
pConn->ConnectionString="Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=HrMan;Data Source=WWW-FA8A5275D46";
pConn->Open("","","",adConnectUnspecified);
只是运行后,出现Runtime Erorr ...”,点确定,程序就关了!热心朋友再研究研究,谢谢啊!我的分还等着送出!