CString strConfigFile = ".\\ExcelServer.ini";
CString strServer;
CString strUserID;
CString strPwd;
CString strDataBase;
CString strProvider; GetPrivateProfileString(_T("SERVER"),_T("SERVER"),_T("127.0.0.1"), strServer.GetBuffer(128), 128,strConfigFile);
GetPrivateProfileString(_T("SERVER"),_T("UserID"),_T("sa"), strUserID.GetBuffer(128), 128,strConfigFile);
GetPrivateProfileString(_T("SERVER"),_T("PassWord"),_T(""), strPwd.GetBuffer(128), 128,strConfigFile);
GetPrivateProfileString(_T("SERVER"),_T("DataBase"),_T("SysRpt"), strDataBase.GetBuffer(128), 128,strConfigFile);
GetPrivateProfileString(_T("SERVER"),_T("Provider"),_T("SQLOLEDB.1"), strProvider.GetBuffer(128), 128,strConfigFile);//strProvider 读到的数据为:
//strProvider读到的数据为:SQLOLEDB.1
//strServer读到的数据为:10.192.84.12
//strUserID读到的数据为:sa
//strPassWord读到的数据为:
//strDataBase读到的数据为:SysRpt strConnect = _T("Provider=") + strProvider +
_T("; Data Source=") + strServer +
_T("; Initial Catalog=") + strDataBase +
_T("; User ID=") + strUserID +
_T("; PWD=") + strPwd;
但是strConnect = "Provider=; Data Source=; Initial Catalog=; User ID=; PWD=";
这是为啥,高手帮忙?!
CString strServer;
CString strUserID;
CString strPwd;
CString strDataBase;
CString strProvider; GetPrivateProfileString(_T("SERVER"),_T("SERVER"),_T("127.0.0.1"), strServer.GetBuffer(128), 128,strConfigFile);
GetPrivateProfileString(_T("SERVER"),_T("UserID"),_T("sa"), strUserID.GetBuffer(128), 128,strConfigFile);
GetPrivateProfileString(_T("SERVER"),_T("PassWord"),_T(""), strPwd.GetBuffer(128), 128,strConfigFile);
GetPrivateProfileString(_T("SERVER"),_T("DataBase"),_T("SysRpt"), strDataBase.GetBuffer(128), 128,strConfigFile);
GetPrivateProfileString(_T("SERVER"),_T("Provider"),_T("SQLOLEDB.1"), strProvider.GetBuffer(128), 128,strConfigFile);//strProvider 读到的数据为:
//strProvider读到的数据为:SQLOLEDB.1
//strServer读到的数据为:10.192.84.12
//strUserID读到的数据为:sa
//strPassWord读到的数据为:
//strDataBase读到的数据为:SysRpt strConnect = _T("Provider=") + strProvider +
_T("; Data Source=") + strServer +
_T("; Initial Catalog=") + strDataBase +
_T("; User ID=") + strUserID +
_T("; PWD=") + strPwd;
但是strConnect = "Provider=; Data Source=; Initial Catalog=; User ID=; PWD=";
这是为啥,高手帮忙?!
"; Data Source=" + strServer +
"; Initial Catalog=" + strDataBase +
"; User ID=" + strUserID +
"; PWD=" + strPwd;
看可以么
别的也一样。
----------
上面的strProvider.GetBuffer(128)直接使用strProvider就可以3.如果你软体中使用的是unicode,因为ini中只支持ansi,所以你需要改变方式操作
这个比较复杂,看你是不是,如果是
可以e_mail to me
[email protected]
strConnect.Format("",...);
If you use the pointer returned by GetBuffer to change the string contents, you must call ReleaseBuffer before using any other CString methods.
strConnect = "Provider=" + strProvider +
"; Data Source=" + strServer +
"; Initial Catalog=" + strDataBase +
"; User ID=" + strUserID +
"; PWD=" + strPwd;
实际上是调用了CString 的operator +() 方法,而在调用此方法之前,却没有调用ReleaseBuffer(),所以,strServer 等没有值。
然后用LPCTSTR转换
m_recordset.Open((LPCTSTR)str,...)