⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tmdo2005.h

📁 vc与公共语言混合编写的访问数据库的代码
💻 H
字号:
#pragma once
/************************************************************************************/
/*
功能:数据访问中间层,托管与非托管代码混合编译的中间件,使用了。NET平台的中间语言,也就是传说中的CLR
作者:streamby(参考wallimn的例子,修改适合本机vs2005环境)
时间:200807
联系方式:streamby@163.com
使用说明:
 1.请在适当位置添加以下代码,如stdafx.h文件中。
  #using <System.dll>
  #using <system.data.dll> 
  #using <System.Xml.dll> 
  using namespace System;
  using namespace System::Data;
  using namespace System::Data::Sql;
  using namespace System::Xml;

  2.设置/clr编译模式:
	项目->项目属性->配置常规属性->公共语言支持库支持->CLR

其它说明:
 1.由于没有工业定义它的名字,而它实际上是用了ado.net的公共语言编写,不知道该起个啥名字,
  人有人TM,妖有妖TM,它应该也有TM,那就给他命名为TMDO吧。
  2.网上有朋友说混合VC的混合编程程序的安全性及其它方面都有所提高。据我实验看来,数据库为SQLSERVER的情况下
  没有其它语言能有.NET(C#,VB)直接编写的快(数据量越大越明显),需要.NET语言其它方面有所欠缺,但如果你的程序是24小时服务的,
  数据库访问比较频烦且不能有效的避免,还是建议用.NET语言编写你的程序
  3.由于没有足够的时间来研究CLR,且没找着手册(英文比较菜),其中有不少的概念没弄明白,呵。不过这个类是可用的
  没发现严重的问题。代码有写得不对的地方,或有所欠缺的,麻烦各位大侠修改,只是最新觉得这方面的内容在网上相对少一些
  所以写一个简单的例子,以新手供学习之用。
  4.代码简要说明
  gcroot:告诉编译器你要使用托管代码,并定义好托管类型,引用是有必要的
  nullptr:公共语言的空指针(大概是这个意思,可以查找一下帮助,花了我不少时间来理解,很多情况下不好用或者不管用),不过不是TMD好用。
  (Object^)nullptr是在指针比较的时候有用,  准确的说应该是引用,因为.NET平台上就这样,水平比较底,不理解为什么这样,呵
  gcnew:创建实例,如果你经常编写CLR数据库项目,对此一定不陌生。
 ^:就是指针的定义,类似*
  5.与大家说一句的是不要沉迷于这种所谓的研究,作为市场上的技术员,不是在搞研究,搞发明,我只是为了混口饭吃,功能实现了就万岁。
  管TMD狗日的学术研究

*/
/************************************************************************************/
class CTMDO2005
{
public:
	CTMDO2005(void);
	//定制连接字符串的构造函数。
	CTMDO2005(CString ConnectionString);
public:
	//析构函数
	~CTMDO2005(void);

	//执行SQL语句,返回影响的记录数
	int ExecuteNonQuery(CString sql);
	//执行多条SQL语句,实现数据库事务。
	bool ExecuteSqlTran(CString sqlarray[]);
	//返回Reader
	gcroot<SqlDataReader^> ExecuteReader(CString sql);
	//单值查询
	int ExecuteScalar(CString sql);
	//返回脱机数据
	gcroot<DataSet^> Query(CString sql);
	//执行存储过程
	bool RunProcedure(CString ProcName, gcroot<IDataParameter^> parameters[]);
	//打开连接
	bool Open();
	//关闭连接
	void Close();
	//设置连接字符串
	void SetConnnectionString(CString ConnectionString){ m_strConnectionString = gcnew String(ConnectionString);};
	//返回SqlDataAdapter对象
	gcroot<SqlDataAdapter^> GetSqlDataAdapter();


 //数据成员
private:
	//连接字符串。
	gcroot<String ^> m_strConnectionString;
	//连接
	gcroot<SqlConnection^> m_SqlConn;
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -