运行的代码:
CoInitialize(NULL); //初始化COM库
_ConnectionPtr pConn(__uuidof(Connection));
_RecordsetPtr pRst(__uuidof(Recordset)); pConn->ConnectionString="Provider=SQLOLEDB.1;Password=12345678henry;Persist Security Info=True;User ID=sa;Initial Catalog=机床实时监控信息;Data Source=AD48BAD6679A475\SQLEXPRESS";
//为数据库连接对象的连接字符串赋值
pConn->Open(" "," "," ",adConnectUnspecified);
pRst=pConn->Execute("select * from 总表",NULL,adCmdText);
while(!pRst->rsEOF)
{
((CListBox*)GetDlgItem(IDC_LIST1))->AddString((_bstr_t)pRst->GetCollect("加工零件号"));
pRst->MoveNext();
}
pRst->Close();
pConn->Close();
pRst.Release();
pConn.Release();
CoUninitialize(); 但是运行进行连接时出现错误提示!希望各位高手指点迷津!
CoInitialize(NULL); //初始化COM库
_ConnectionPtr pConn(__uuidof(Connection));
_RecordsetPtr pRst(__uuidof(Recordset)); pConn->ConnectionString="Provider=SQLOLEDB.1;Password=12345678henry;Persist Security Info=True;User ID=sa;Initial Catalog=机床实时监控信息;Data Source=AD48BAD6679A475\SQLEXPRESS";
//为数据库连接对象的连接字符串赋值
pConn->Open(" "," "," ",adConnectUnspecified);
pRst=pConn->Execute("select * from 总表",NULL,adCmdText);
while(!pRst->rsEOF)
{
((CListBox*)GetDlgItem(IDC_LIST1))->AddString((_bstr_t)pRst->GetCollect("加工零件号"));
pRst->MoveNext();
}
pRst->Close();
pConn->Close();
pRst.Release();
pConn.Release();
CoUninitialize(); 但是运行进行连接时出现错误提示!希望各位高手指点迷津!
解决方案 »
- 请问在位图上写字,当设置文字背景为透明,当连续在同一个位置写多次时,文字重叠????
- 求助: 调用UpdateAllView了, OnUpdate为什么不执行?
- 菜鸟问题,怎样在程序中播放视频文件(avi、mpeg等)?
- MFC ado CreateInstance创建实例疑问
- 再问一个:如何获取所有的图片地址,包括table中的背景图片?
- 求教DXDRAW中页面丢失的问题.(50)
- com内自动触发事件,并且传递参数到调用com的程序,现在想传递一个结构体出去,请问高手如何传递。
- 最近在读代码 c语法?
- 关于二维数组动态分配内存
- 急!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- 是不是我的用法有问题, 还是无法做到像QQ那样 在顶层
- 关于CreateThread函数中的入口地址的问题
对话框:
Runtime Error!Program :D:……This application has requested the Runtime to terminate it in unusual way
Please contact the application's support team for more information
用ADO,一定要try catch。
另外,用其他的数据库连接工具试验一下,是不是能连上,排除数据库服务本身的问题。
Windows自带的“管理工具-〉数据源(ODBC)”也是一个可用测试的链接客户端。
open里应该是需要填入如:
//数据库服务器(local),数据库名staff,用户名sa,密码sa
这样的数据库的数据的吧,你这样是空的啊。
ConnectionString问题,将Data Source换成指定IP地址。 如果是本机Data Source=.或Data Source=(local)
如果是远程Data Source=指定IP地址
所以将你的三对双引号中的空格去掉就可以了,你试一下:
pConn->Open(" "," "," ",adConnectUnspecified);
改为:
pConn->Open("","","",adConnectUnspecified);
//如果还是连不上,就再将后面的adConnectUnspecified换成:adModeUnknown试试。不过我还是建议用我下面这种方法,你只要将IP改为你的实例名就可以了://定义数据库连接字符串
_bstr_t ConnectionStr ="Provider=sqloledb;Network Library=DBMSSOCN;Initial Catalog=数据库的名称;User ID=sa;Password=数据库的密码;Data Source=172.16.211.1,1433";
HRESULT hr;
try
{
hr=pConn.CreateInstance(__uuidof(Connection));
if(SUCCEEDED(hr))
{
//不使用DNS,而是使用了SQL的实例方法,打开数据库连接
pConn->ConnectionTimeout = 5;///设置超时时间为5秒
hr=pConn->Open(ConnectionStr, "", "", adModeUnknown);
}
if(SUCCEEDED(hr))
{
//成功
}
}
catch(_com_error &e)
{
ADOError(e,""); //显示错误的原因,函数在后,你要将定义复制一下放在文件头处否则编译会出错
return FALSE;
}void ADOError(_com_error &e,CString strFirstLineText="") //显示ADO错误信息
{
::CoUninitialize(); //先释放COM对象 _bstr_t bstrSource(e.Source());
_bstr_t bstrDescription(e.Description());
CString str;
str.Format("Code = %08lx", e.Error());
str += "\nMsg: ";
str += e.ErrorMessage();
str += "\nSource: ";
str += bstrSource;
str += "\nDescription: ";
str += bstrDescription; if (strFirstLineText=="")
{
str = "数据库发生错误,信息如下:\n"+str;
}
else
{
str = strFirstLineText+str;
}
AfxMessageBox(str);
}