ADO执行SQL脚本文件

原创 2004年09月20日 14:45:00


BOOL CADODatabase::Open(LPCTSTR lpstrConnection, LPCTSTR lpstrUserID, LPCTSTR lpstrPassword)
{
 HRESULT hr = S_OK;

 if(IsOpen())
  Close();

 if(strcmp(lpstrConnection, _T("")) != 0)
  m_strConnection = lpstrConnection;

 ASSERT(!m_strConnection.IsEmpty());

 try
 {
  if(m_nConnectionTimeout != 0)
   m_pConnection->PutConnectionTimeout(m_nConnectionTimeout);
  hr = m_pConnection->Open(_bstr_t(m_strConnection), _bstr_t(lpstrUserID), _bstr_t(lpstrPassword), NULL);
  return hr == S_OK;
 }
 catch(_com_error &e)
 {
  dump_com_error(e);
  return FALSE;
 }
 
}
BOOL CADODatabase::ConnectAccess(LPCTSTR lpstrDatabaseName,LPCTSTR lpstrPassword, long lOptions)
{
 CString strConnect;
 strConnect.Format("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=%s; ",lpstrDatabaseName); //修改
 if (lpstrPassword != _T(""))
 {
  strConnect.AppendFormat("Jet OLEDB:Database Password=%s;",lpstrPassword);//修改
 }
 return Open(LPCTSTR(strConnect));
}

BOOL CADODatabase::ConnectSQLServer(LPCTSTR lpstrDatabaseServer, LPCTSTR lpstrDatabaseName, LPCTSTR lpstrUserID, LPCTSTR lpstrPassword)
{
 CString strConnect;
 strConnect.Format("Provider=SQLOLEDB.1; Data Source=%s; Initial Catalog=%s",lpstrDatabaseServer,lpstrDatabaseName);
    return Open(LPCTSTR(strConnect), lpstrUserID, lpstrPassword);
}

BOOL CADODatabase::Execute(LPCTSTR lpstrExec)
{
 ASSERT(m_pConnection != NULL);
 ASSERT(strcmp(lpstrExec, _T("")) != 0);
 _variant_t vRecords;
 
 m_nRecordsAffected = 0;

 try
 {
  m_pConnection->CursorLocation = adUseClient;
  m_pConnection->Execute(_bstr_t(lpstrExec), &vRecords, adExecuteNoRecords);
  m_nRecordsAffected = vRecords.iVal;
  return TRUE;
 }
 catch(_com_error &e)
 {
  dump_com_error(e);
  return FALSE; 
 }
}

BOOL CADODatabase::ExecuteSqlFile(LPCTSTR lpstrFileName)
{
 CStdioFileEx pFile;
 if(!pFile.Open(lpstrFileName,CFile::modeRead | CFile::typeText))
 {
  return FALSE;
 }
 CString strSql,strRead;
 strSql.Empty();
 while(pFile.ReadString(strRead))
 {
  if(strRead.Trim().CompareNoCase(_T("GO"))==0)
  {
   if(!strSql.IsEmpty())
   {
    if(!Execute(strSql))
     return FALSE;
    strSql.Empty();
   }
  }
  else
  {
   strSql+=_T(" ")+strRead;
  }
 }
 return TRUE;
}

ADO+MFC数据库编程常用语句

设在OnInitDialog()函数中,已经完成了
  • foreverhuylee
  • foreverhuylee
  • 2014年06月30日 16:32
  • 3029

VC使用ADO访问sql server数据库

软件:vs2010、sql server2005 代码如下: #include #include using namespace std; //1、添加对ADO的支持 #import "C...
  • woshiyuanlei
  • woshiyuanlei
  • 2015年05月31日 13:37
  • 1505

VC使用ADO连接SQLServer数据库(精简实用版)

VC使用ADO连接SQLServer数据库 分类: 开发路上的点点滴滴2012-05-18 18:32 946人阅读 评论(0) 收藏 举报 sqlservermicrosoft数...
  • foreverhuylee
  • foreverhuylee
  • 2014年06月28日 14:46
  • 1765

VS2010-MFC通过ADO调用SQLServer存储过程

首先,贴出我失败的尝试吧,问题没有解决,希望日后有高手指点 简单的存储过程例子 USE [VIPDataTest_DB] GO /****** Object: StoredProcedure [...
  • shizhoulei
  • shizhoulei
  • 2015年04月29日 09:13
  • 974

VC_ADO连接SQLSERVER时连接字符串的模式

一、连接SQL SERVER的第一种连接字串: 是针对数据库身份验证模式为”SQL SERVER 和 windows“而言, 连接字串为: CString strConn; strConn =...
  • dyzhen
  • dyzhen
  • 2016年08月23日 14:03
  • 640

VS2010通过ADO链接SQL Server的方法体会

这里时我花了一天多的时间查找各种资料和网站上面整理出来的有关MFC通过ADO的方式连接SQL server数据库的方法,各种书籍或者网站都只说了其中的一些,只是举了一些成功的例子,因为不同人不同电脑的...
  • woshimalingyi
  • woshimalingyi
  • 2014年12月15日 02:21
  • 2831

VC_ADO连接SQLSERVER时连接字符串的模式

VC的数据库编程中,使用ADO连接连接SQL SERVER 时,连接字符串的概念很重要。 这篇文章重点介绍ADO和SQL SERVER进行连接时,几种不同的连接字符串形式,并且分析了连接SQL SER...
  • foreverhuylee
  • foreverhuylee
  • 2014年07月01日 18:40
  • 7102

基于Win32控制台应用程序的ADO连接SQL server数据库

C++ 基于Win32控制台应用程序的ADO连接SQL server数据库   ADO(ActiveX Data Object)是Microsoft数据库应用程序开发的新接口,是...
  • oMengHen1
  • oMengHen1
  • 2013年01月28日 16:44
  • 5302

vs2008和SQL Server使用ADO连接方法

学了几天ADO方法,今天也写一写教程~ 时间2012年10月20日 环境: 操作系统:win7- 64bit 编译器:VS2008 数据库:SQL Server 2000 说明: SQ...
  • a8082649
  • a8082649
  • 2014年03月12日 19:15
  • 3698

在VS2010环境下用ADO方式连接SQL2008的步骤

由于以前的经典版本VC6.0在WIN7上的兼容性不是很好,所以改装了VS2010,发现上面集成了SQL2008的一些东西。要想学习数据库,当然你可以下载一个SQL2008完整安装,在运用下面讲的连接方...
  • zhuyinglong2010
  • zhuyinglong2010
  • 2014年09月10日 20:36
  • 4208
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ADO执行SQL脚本文件
举报原因:
原因补充:

(最多只允许输入30个字)