2011年11月30日 星期三

使用 7-Zip 壓縮檔案

最近要壓縮 Email 附件檔
所以就挑了 7-Zip 來使用(免費)
這邊就記錄一下使用方式

   Dim p as new Diagnostics.Process()      
   ' 7z.exe 的路徑
   ' 也可以將 7z.exe 直接 Copy 到程式資料夾下
   p.StartInfo.Filename = "C:\Progra~1\7-Zip\7z.exe"
   ' a : 加入壓縮檔
   ' -tzip : 以 zip 方式壓縮
   ' -v3m : 每 3 MB 切割一個壓縮檔
   ' ZipFiles : 要壓縮的資料夾或檔案名稱 (可使用相對或絕對路徑)
   p.StartInfo.Arguments = "a -tzip -v3m ZipFiles"
   p.Start()
   p.WaitForExit()  ' 等待壓縮完成才進行之後的程式段

7-Zip 的相關參數設定可參考 [此處]

2011年9月14日 星期三

ASP 呼叫 .NET Web Service

為了讓 ASP 呼叫 .NET 的 Web Service
上網查了好久的資料
查到有 2 種方式可以達成
   1. 使用 XMLHTTP 呼叫
   2. 使用 SOAP 呼叫
最後決定用 XMLHTTP 的方式呼叫
因為 SOAP 要另外在 ASP 端安裝 SOAP Toolkit

在這邊記錄一下 XMLHTTP 呼叫 Web Service 的方法

<%
   Set objHttp = Server.CreateObject("MSXML2.XMLHTTP")
   Set xmlDOC = Server.CreateObject("MSXML.DOMDocument")

   ' Web Service 網址 (最後面加要呼叫的Function Name)
   ws_url = "http://localhost/TestWebService/Service.asmx/Add"

   ' Web Service 要傳入的參數
   ws_params = "Param1=" & 1 & "&Param2=" & 3

   ' Web Service 的 web.config 要在 <system.web> </system.web> 中設定
   ' <webservices>
   '    <protocols>
   '        <add name="HttpPost"/>
   '        <add name="HttpGet"/>
   '    </protocols>
   ' </webServices>
   objHttp.Open "POST", ws_url, False
   objHttp.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
   objHttp.Send(ws_params)
   xmlDOC.load(objHttp.responseXML)

   if objHttp.Status = 200 then
      xmlStr = xmlDOC.xml
      Response.Write Replace(Replace(xmlStr,"<","&lt;"),">","&gt;")
   else
      Response.Write "Error : " & objHttp.StatusText & "(" & objHttp.Status & ")"
   end if
%>

2011年8月5日 星期五

SQL Server 建立 Oracle 連結伺服器

記錄一下在SQL Server 建立 Oracle 連結伺服器要注意的地方.

安裝好 Oracle Client 後
就可以到SQL Server建立「Oracle Provider for OLE DB」的連結伺服器
設定畫面如下:


測試連接也都正常


但是一下OPENQUERY查詢,就發生錯誤

最後終於找到原因:Provider要設定InProcess

最後,記得要將連結伺服器刪除重新建立,
這樣InProcess才會生效.

可參考下列資料(雖然說明有些都看不懂):
MSDN-OPENQUERY (Transact-SQL)
MSDN-連結的伺服器屬性(提供者選項頁面)