您的位置:首页 > 数据库

vc sqlserver编程的一个处理类

2009-09-01 00:05 169 查看
这是头文件
#pragma once

#include "stdafx.h"

class SQLDB
{
public:
SQLDB(void);
~SQLDB(void);

public:
_ConnectionPtr m_con;
_RecordsetPtr m_record;

public:
void InitConnection();
_RecordsetPtr& GetRecordSet(_bstr_t sql);
BOOL ExecuteSql(_bstr_t sql);
void ExitConnection();
};

这是cpp文件
#include "StdAfx.h"
#include "SQLDB.h"

SQLDB::SQLDB(void)
{
}

SQLDB::~SQLDB(void)
{
}

void SQLDB::InitConnection()
{

try
{
//´创建connection连接对象
m_con.CreateInstance("ADODB.Connection");
//设置连接字符串
_bstr_t strConnect= "Provider=SQLOLEDB.1;Persist Security Info=False;Initial Catalog=test1;Data Source=NETCOM-ZJY\\SQL2005";
//AfxMessageBox(strConnect,0,0);
//SERVER和UID,PWD的设定需要根据自己的情况
m_con->Open(strConnect,"sa","111111",adModeUnknown);
//AfxMessageBox(L"connection ok");
}
//捕捉异常
catch(_com_error e)
{
//显示错误信息
AfxMessageBox(e.Description());
}
}

_RecordsetPtr& SQLDB::GetRecordSet(_bstr_t sql)
{
if(m_con == NULL)
{
InitConnection();
}

try
{
m_record.CreateInstance(__uuidof(Recordset));
m_record->Open(sql,m_con.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
}
catch(_com_error e)
{
e.Description();
}
return m_record;

}

BOOL SQLDB::ExecuteSql(_bstr_t sql)
{
_variant_t affect;

if(m_con == NULL)
{
SQLDB::InitConnection();
}

try
{
m_con->Execute(sql,NULL,adCmdText);
return TRUE;
}
catch(_com_error e)
{
return FALSE;
}

}

void SQLDB::ExitConnection()
{
if(m_record != NULL)
{
m_record->Close();
}

m_con->Close();
}

本文使用Blog_Backup未注册版本导出,请到soft.pt42.com注册。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: