?? 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 + -