使用SQLDMO控制 SQL Server (轉)
使用DMO控制
鄧振波
廢話少說,步入正題,關於MS SQL Server特性優缺點的東西留待以後再討論。
為外部的MS SQL Server服務訪問提供了功能強大的COM介面,透過這些介面,可以不費吹灰之力就可以方便的訪問SQL的服務。
第一步:在MS SQL Server的目錄下面找到在sqldmo.rll,然後
#import "sqldmo.rll" no_namespace
這樣就生產了sqldmo.tlh和sqldmo.tli檔案,裡面包含了SQL的COM介面的定義和實現。
第二步:就是具體的實現了。
先來一個啟動SQL Server服務
BOOL StartSQLServer()
{
//先初始化COM
if (FAILED(CoInitialize(NULL)))
{
AfxMessageBox("Com初始化錯誤!");
return FALSE;
}
//定義一個SQL Server的指標
_SQLServerPtr spSQLServer;
//標準方法,建立例項
if (FAILED(spSQLServer.CreateInstance(__uuidof(SQLServer))))
{
AfxMessageBox("無法建立SQL物件!");
return FALSE;
}
try
{
//這裡設定連線SQL的一些引數
//簡單。設定Login超時
spSQLServer->PutLoginTimeout(10);
//隨便起個名字好啦,管不著我啦
spSQLServer->PutApplicationName("MyAppName");
spSQLServer->PutHostName("MyHostName");
//資料Packet的大小
spSQLServer->PuPacketSize(1024);
/*
該建立連線了,為什麼呢??服務還沒有啟動啊?怎麼連線呢?不是傻了嗎?道理跟你慢慢跟你說啦:這是試探一下SQL Server是不是已經啟動了,如果它已經啟動,那麼我們就不用再次啟動了(再次啟動也是錯誤:的例項已經執行中),呵呵,已經啟動了,幹嗎還要我寫程式碼啟動它啊?所以,如果SQL Server如果沒有啟動(當然其他原因也會觸發異常),下面的異常處理程式碼就會到,我們將在異常處理中執行啟動
*/
CString strServer(”(Local)”);/*連線啟動的SQL 的伺服器名(這裡是本地SQL Server 服務,記住將本地的SQL Server服務停掉,然後測試啊)*/
Cstring strUserName(“sa”); //連線啟動的名,也可以使用信任連線,不用提供使用者名稱和密碼,請參考MSDN
Cstring strPass(””);//就是密碼啦 spSQLServer->Connect(_variant_t(strServer),_variant_t(strUserName),_variant_t());
}
catch(_com_error pCE)
{
//連線錯誤啦,是伺服器沒有啟動吧
try
{
//真正啟動SQL Server的程式碼在這裡 spSQLServer->Start(FALSE,_variant_t(strServer),_variant_t(strUserName),_variant_t(strPassword)); }
catch(_com_error pCE)
{
//這次的異常處理倒沒有執行什麼操作啊,隨便處理一下,返回一個錯誤資訊啦。
AfxMessageBox(pCE.Description());
spSQLServer.Release();
return FALSE;
}
}
//接下來是釋放資源啦,try catch是不是用成習慣了,這樣也要??反正是沒有錯的,多用一下也好啦。
try
{
spSQLServer.Release();
spSQLServer.Release();
}
catch(_com_error pCE)
{
AfxMessageBox(pCE.Description());
return FALSE;
}
//釋放COM
CoUninitialize();
return TRUE;
}
透過#import "sqldmo.rll"還能獲得其他的很多介面,比如Attach、FullTextService、獲得設定SQL Server伺服器的屬性等等,當然相對應的停止SQL服務我就不用說了吧。
/sqldmo.zip">工程原始檔
更多文章在
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-990640/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- sql server 使用SQLServer
- SQL Server 索引結構及其使用(一)[轉]SQLServer索引
- SQL Server 索引結構及其使用(二)[轉]SQLServer索引
- [轉] SQL Server 原理SQLServer
- SQL SERVER 流程控制語句SQLServer
- SQL SERVER PIVOT使用SQLServer
- 使用SQL Server ProfilerSQLServer
- sql server 行列轉換SQLServer
- Sql Server系列:資料控制語句SQLServer
- Sql Server系列:流程控制語句SQLServer
- SQL Server profile使用技巧SQLServer
- SQL Server中,WITH AS的使用SQLServer
- SQL SERVER 遊標的使用SQLServer
- sql server行列轉換案例SQLServer
- sql server型別轉換SQLServer型別
- 【轉載】SQL Server 維護SQLServer
- Perl 連線 SQL Server (轉)SQLServer
- SQL SERVER效能優化(轉)SQLServer優化
- SQL Server日期計算 (轉)SQLServer
- SQL Server遊標使用例子SQLServer
- SQL Server 轉儲的介紹SQLServer
- 豎錶轉橫表(SQL SERVER)SQLServer
- sql server日期時間轉字串SQLServer字串
- 利用SQL Server發郵件 (轉)SQLServer
- SQL Server的有效安裝 (轉)SQLServer
- SQL Server效能分析引數 (轉)SQLServer
- 阿里雲RDS(SQL SERVER使用者控制檯監控資訊詳解)阿里SQLServer
- [zt] 使用SQL Server中的Linked Server及Remote ServerSQLServerREM
- 小寫轉大寫金額[SQL SERVER] (轉)SQLServer
- SQL Server中使用DTS設計器進行資料轉移SQLServer
- 使用OPENROWSET爆破SQL Server密碼SQLServer密碼
- SQL Server遊標使用練習SQLServer
- SQL Server 索引結構及其使用SQLServer索引
- SQL SERVER臨時表的使用SQLServer
- SQL Server :DBLINK建立及使用SQLServer
- SQL Server MDX中軸的使用SQLServer
- Blazor使用sql server 資料庫BlazorSQLServer資料庫
- 解析SQL Server中行轉列問題SQLServer