VC 6.0 通过ADO 远程连接VS2008
2012-11-09 15:34
176 查看
步骤及代码如下:
1、首先在Stdafx.h头文件中引入ADO库,代码如下:
//引入ADO库
#import "C:\Program Files\common files\system\ado\msado15.dll" no_namespace rename("EOF","EndOfFile") rename("BOF","FirstOfFile")
//rename("EOF","EndOfFile")表示将"EOF"重新定义为"EndOfFile"
2、在需要连接数据库的.CPP文件中加入数据库操作代码:
::CoInitialize(NULL); . //初始化COM库
_ConnectionPtr m_pstartconn; //连接对象指针
m_pstartconn.CreateInstance(__uuidof(Connection)); //初始化对象
_RecordsetPtr pRecordsetstart; //数据集对象指针
pRecordsetstart.CreateInstance(__uuidof(Recordset)); //初始化数据集指针
//连接数据库的字符串
CString strConnect= "Provider=SQLOLEDB.1;Password=123;Persist Security Info=False;User ID=123;Initial Catalog=datatest;Data Source=10.1.8.221";
注释:Provider字段指 打开数据库用哪种方式连接,Password指数据库的认证密码,Persist Security Info指是否保存安全信息,User ID指数据库的认证用户名,Initial Catalog指数据库的名称或者目录,Data Source指远程的数据库(服务器)IP地址
下面是有两种打开数据库方式,一个是以m_pstartconn打开数据库,另一个以pRecordsetstart连接数据库,实际操作可以任选其一
1>以m_pstartconn打开数据库:
try
{
if (m_pConnection->State)
{
m_pConnection->Close();
}
// 设置超时时间为3秒钟
m_pConnection->PutConnectionTimeout(3);
m_pConnection->Open(_bstr_t(strConnect),"","",adModeUnknown);
}
catch(_com_error e)
{
CString strmessage;
strmessage.FormatMessage("数据库连接失败!",e.Description());
AfxMessageBox(strmessage);
}
2>下面是以pRecordsetstart打开数据库并连接f_test_tb表及异常处理:
try
{
if (m_pstartconn->State)
{
m_pstartconn->Close();
}
m_pstartconn->PutConnectionTimeout(5); // 设置超时时间为5秒钟
pRecordsetstart->Open("select * from f_test_tb", _bstr_t(strConnect),
adOpenDynamic, adLockOptimistic, adCmdUnknown); //打开数据库中的f_test_tb表,得到数据集,并赋给pRecordsetstart
}
catch(_com_error e)
{
CString strmessage;
strmessage.FormatMessage("数据库连接失败!",e.Description());
AfxMessageBox(strmessage);
}
3、上面连接数据库的步骤已经完成,下面是对数据库表的操作:
//插入数据
CString strSQL = "insert into f_data(order,pn,testname,testvalue) values('312','GS','wcd,'30')";//插入字符串
pRecordsetftest->AddNew();
pRecordsetftest->PutCollect("order",12); //插入列数据,order指表中的字段,12指插入此列的数据
pRecordsetftest->PutCollect("pn",34); //插入列数据,pn指表中的字段,34指插入此列的数据
pRecordsetftest->Update(); //更新数据库表
//获得数据库表的数据:
CString strpn=((_variant_t)pRecordsetstart->GetCollect("pn")).bstrVal; //pn 指表中的字段,获取到的数据赋给变量strpn。
// 删除数据库的数据:
CString strpn=((_variant_t)pRecordsetstart->GetCollect("pn")).bstrVal; //pn 指表中的字段,获取到的数据赋给变量strpn,再删除
pRecordsetstart->Delete(adAffectCurrent);
pRecordsetstart.->Update();
1、首先在Stdafx.h头文件中引入ADO库,代码如下:
//引入ADO库
#import "C:\Program Files\common files\system\ado\msado15.dll" no_namespace rename("EOF","EndOfFile") rename("BOF","FirstOfFile")
//rename("EOF","EndOfFile")表示将"EOF"重新定义为"EndOfFile"
2、在需要连接数据库的.CPP文件中加入数据库操作代码:
::CoInitialize(NULL); . //初始化COM库
_ConnectionPtr m_pstartconn; //连接对象指针
m_pstartconn.CreateInstance(__uuidof(Connection)); //初始化对象
_RecordsetPtr pRecordsetstart; //数据集对象指针
pRecordsetstart.CreateInstance(__uuidof(Recordset)); //初始化数据集指针
//连接数据库的字符串
CString strConnect= "Provider=SQLOLEDB.1;Password=123;Persist Security Info=False;User ID=123;Initial Catalog=datatest;Data Source=10.1.8.221";
注释:Provider字段指 打开数据库用哪种方式连接,Password指数据库的认证密码,Persist Security Info指是否保存安全信息,User ID指数据库的认证用户名,Initial Catalog指数据库的名称或者目录,Data Source指远程的数据库(服务器)IP地址
下面是有两种打开数据库方式,一个是以m_pstartconn打开数据库,另一个以pRecordsetstart连接数据库,实际操作可以任选其一
1>以m_pstartconn打开数据库:
try
{
if (m_pConnection->State)
{
m_pConnection->Close();
}
// 设置超时时间为3秒钟
m_pConnection->PutConnectionTimeout(3);
m_pConnection->Open(_bstr_t(strConnect),"","",adModeUnknown);
}
catch(_com_error e)
{
CString strmessage;
strmessage.FormatMessage("数据库连接失败!",e.Description());
AfxMessageBox(strmessage);
}
2>下面是以pRecordsetstart打开数据库并连接f_test_tb表及异常处理:
try
{
if (m_pstartconn->State)
{
m_pstartconn->Close();
}
m_pstartconn->PutConnectionTimeout(5); // 设置超时时间为5秒钟
pRecordsetstart->Open("select * from f_test_tb", _bstr_t(strConnect),
adOpenDynamic, adLockOptimistic, adCmdUnknown); //打开数据库中的f_test_tb表,得到数据集,并赋给pRecordsetstart
}
catch(_com_error e)
{
CString strmessage;
strmessage.FormatMessage("数据库连接失败!",e.Description());
AfxMessageBox(strmessage);
}
3、上面连接数据库的步骤已经完成,下面是对数据库表的操作:
//插入数据
CString strSQL = "insert into f_data(order,pn,testname,testvalue) values('312','GS','wcd,'30')";//插入字符串
pRecordsetftest->AddNew();
pRecordsetftest->PutCollect("order",12); //插入列数据,order指表中的字段,12指插入此列的数据
pRecordsetftest->PutCollect("pn",34); //插入列数据,pn指表中的字段,34指插入此列的数据
pRecordsetftest->Update(); //更新数据库表
//获得数据库表的数据:
CString strpn=((_variant_t)pRecordsetstart->GetCollect("pn")).bstrVal; //pn 指表中的字段,获取到的数据赋给变量strpn。
// 删除数据库的数据:
CString strpn=((_variant_t)pRecordsetstart->GetCollect("pn")).bstrVal; //pn 指表中的字段,获取到的数据赋给变量strpn,再删除
pRecordsetstart->Delete(adAffectCurrent);
pRecordsetstart.->Update();
相关文章推荐
- Vc++(MFC)中使用ADO 连接SQL Server的(远程)
- VC++通过ADO连接mysql中文显示问题
- VC++中使用MFC通过ADO连接数据库方法小结
- VC++6.0通过ado远程连接Oracle
- VC++ 通过ADO连接数据库查询时返回空值报错的解决方案
- VC++ 通过ADO方式连接SQLServer20XX出现sqlserver 不存在或者拒绝连接错误
- ADO的一次开发实践(vc通过ADO连接access数据库做的一个多功能查询系统)
- Vc++(MFC)中怎样使用ADO Data控件实现与SQL Server的(远程)连接(ADO实现)
- VC通过ADO连接到ACCESS,SQLSERVER,ORACLE数据库(二)
- MFC(VS2008)通过ADO连接SQLSERVER2008
- VC++中使用MFC通过ADO连接数据库方法小结(不包括异常的捕捉
- VC++中使用MFC通过ADO连接数据库
- VC++中使用MFC通过ADO连接数据库
- VC++ 通过ADO连接数据库(二)
- VC++ 通过ADO连接数据库查询时返回空值报错的解决方案
- VC++通过ADO连接数据库(三)_variant_t和_bstr_t
- VC通过ADO连接到ACCESS,SQLSERVER,ORACLE数据库(一)
- VC++中使用MFC通过ADO连接数据库方法小结
- VC++ 6.0 ADO连接数据库中出现的问题
- Vc++(MFC)实现SQL Server的远程连接(ADO实现)