📄 tmdo2005.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 + -