目前比较流行的是ODBC方式和ADO方式
ODBC方式应用的比较早,但是用它的话是要设置数据源的,而且它没有通用的数据驱动。
ADO方式是才发展起来的,它是基于OLEDB层来访问数据库的,访问的时候无需建立数据源,而且通用,是以后的发展方向
楼主要学习的话还是学习ADO方式吧!毕竟这个是趋势么
_ConnectionPtr m_pConnection;
_RecordsetPtr m_pRecordSet;
m_pConnectionCreateInstance("ADODBConnection");
if (m_pConnection == NULL)
{
AfxMessageBox("Connection 对象创建失败! 请确认是否初始化了COM环境\r\n");
return ;
}
try{
m_pConnection->ConnectionTimeout = 10;
_bstr_t strCon = "Provider=SQLOLEDB1; Driver={SQL Server}; Server=MICROSOF-4DAE95; Database=MYDB; uid=username; pwd=userpassword;";
m_pConnection->Open(strCon, "", "", adModeUnknown);
MessageBox("已经连接上数据库");
//MICROSOF-4DAE95 是你所启动的服务器名字;username 是你登陆服务器的用户名;userpassword 是登陆密码
m_pRecordSetCreateInstance(__uuidof(Recordset));//"ADODBRecordset"
m_pRecordSet->Open("SELECT FROM T_mytb", // 查询DemoTable表中所有字段 m_pConnectionGetInterfacePtr(),// 获取库接库的IDispatch指针
adOpenDynamic,adLockOptimistic,adCmdText);
if(!m_pRecordSet->BOF)// _RecordsetPtr m_pRecordSet;
m_pRecordSet->MoveFirst();
else
{
AfxMessageBox("表内数据为空");
return;
}
// 读入库中各字段并加入列表框中
while(!m_pRecordSet->adoEOF)
{
var = m_pRecordSet->GetCollect("time");
if(varvt != VT_NULL)
strID = (LPCSTR)_bstr_t(var);
var = m_pRecordSet->GetCollect("terminalID");
if(varvt != VT_NULL)
strName = (LPCSTR)_bstr_t(var);
var = m_pRecordSet->GetCollect("objectID");
if(varvt != VT_NULL)
strAge = (LPCSTR)_bstr_t(var);
var = m_pRecordSet->GetCollect("positionX");
if(varvt != VT_NULL)
strdate = (LPCSTR)_bstr_t(var);
//m_AccessList列表关联的变量
int n = m_AccessListGetItemCount();
m_AccessListInsertItem(n,strID); m_AccessListSetItemText(n,1,strName);
m_AccessListSetItemText(n,2,strAge);
m_AccessListSetItemText(n,3,strdate);
m_pRecordSet->MoveNext();
}
//我试过的没有问题的,记得^-^
以上就是关于VC++用什么方式连接数据库最好全部的内容,包括:VC++用什么方式连接数据库最好、VC++编程访问sql server数据库 高手进来哦、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)