MFC ado远程连接MSSQL

在stdafx.h中引入:

#import "C:\Program Files\Common Files\System\ado\msado15.dll"  no_namespace rename("EOF","adoEOF")


添加变量:

	_ConnectionPtr m_pConnection;
	_RecordsetPtr m_pRecordset;
 
连接数据库:
	CoInitialize(NULL);
	m_pConnection.CreateInstance(_T("ADODB.Connection"));///创建Connection对象
	m_pConnection->ConnectionTimeout = 8;
	try{
		HRESULT hr;
		hr = m_pConnection->Open(_T("Provider=SQLOLEDB.1;Data Source=127.0.0.1,1433;Initial Catalog= databasename;"),_T("sa"),_T("sapwd"),adModeUnknown);

		if (FAILED(hr))
		{
			AfxMessageBox(_T("不能连接数据库!"));
			return FALSE;
		}
		else
		{
			AfxMessageBox(_T("连接数据库成功!"));
		}
	}
	catch(_com_error e)
	{
		AfxMessageBox(_T("不能打开数据库!"));
		return false;
	}

 

读取数据表:

		CString strTableName = _T("");
			m_pRecordset = m_pConnection->OpenSchema(adSchemaTables); 
			if (!m_pRecordset->BOF)
			{
				m_pRecordset->MoveFirst();
			}
			while(!m_pRecordset->adoEOF)
			{
				strTableName =(LPCSTR)_bstr_t(m_pRecordset->GetFields()->GetItem(_T("TABLE_NAME"))->Value);
				//MessageBox(strTableName);
				m_pRecordset->MoveNext();
				m_ctrlListTables.InsertString(m_ctrlListTables.GetCount(),strTableName);
			}  


读取数据:

			CString SQLStr;
			SQLStr.Format(_T("select top 1 * from test"));
			m_pRecordset.CreateInstance(__uuidof(Recordset));  
			m_pRecordset->Open(_bstr_t(SQLStr),m_pConnection.GetInterfacePtr(),  
				adOpenDynamic,adLockOptimistic,adCmdText);
			while(!m_pRecordset->adoEOF)
			{
				CString str;
				str =(LPCSTR)_bstr_t(m_pRecordset->GetFields()->GetItem(_T("id"))->Value);
				//MessageBox(strTableName);
				m_pRecordset->MoveNext();
			         m_ctrlListTables.InsertString(m_ctrlListTables.GetCount(),str);
			}

 

插入数据:

			CString strCommand=_T("");
			strCommand.Format(
				_T("INSERT INTO A_cpa values ('%s','%d','%s','%s','%s','%d','%s','%d','%s','%s','%s','%s','%s')"),
				LMuname,LMID,lailuURL,addtime,cpaUser,ok,regip,sex8,browser,mima,os,fbl,wwwurl);
			try
			{
				m_pConnection->Execute((_bstr_t)strCommand, NULL, adCmdText);
			}
			catch(_com_error& e)
			{
				//MessageBox(e.ErrorMessage());
				return false;
			}




 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值