2008年12月20日 星期六

ASP 郵寄元件

最近突然USER反應電子報無法寄件,於是前後換了CDONTS & CDO & JMail去測試
雖然,最後的結果很令人噴飯,不過還是整理了在ASP裡可用的郵寄元件分享一下..
PS.電子報請自動加入迴圈執行

[CDONTS]
Set mail = Server.CreateObject( "CDONTS.NewMail" )
mail.To = RS.Fields("EMail").Value
mail.From = CMail
mail.Subject = Upload("Tit")
mail.BodyFormat = 0
mail.MailFormat = 0
mail.Body = Content
mail.Send

[CDO]
Set objEmail = CreateObject("CDO.Message")
objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "msa.hinet.net"
objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "xx"
objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "xx"
objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objEmail.From = CMail
objEmail.To = RS.Fields("EMail").Value
objEmail.Subject = Upload("Tit")
objEmail.HTMLbody = Content
objEmail.Configuration.Fields.Update
objEmail.Send
Set objEmail=Nothing

[JMail]
Set JMail = Server.CreateObject("JMail.Message")
JMail.Subject = Upload("Tit")
JMail.ContentType = "text/html"
JMail.Charset = "big5"
JMail.Encoding = "base64"
JMail.ISOEncodeHeaders = False
JMail.Priority = 3
JMail.From = CMail
JMail.AddRecipient RS.Fields("EMail").Value
JMail.silent = true
JMail.Body = Content
JMail.Send("msa.hinet.net")
set JMail = nothing

2008年11月26日 星期三

動態改變POST的URL

Javascript的code如下,送出時先執行acFun()來切換action位置

function acFun()
{
if (document.form1.ac.value=="2")
document.form1.action="a.aspx";
else
document.form1.action="b.aspx";
document.form1.submit()
}

排程執行MYSQL指令

接著上一篇MYSQL刪除重複資料老是手動去執行MYSQL指令也是很麻煩的一件事,
於是寫了一個副檔名是bat的檔案..內容如下

PATH=%PATH%;D:\database\AppServ\mysql\bin\
mysql -u root < songlist.sql

再寫一個副檔名是sql的檔案..內容如下

use webdata;
ALTER IGNORE TABLE songlist ADD UNIQUE INDEX(dt,tp);
quit ;

之後設定一下排程 ex.每天晚上11點去執行這個bat檔案就可以囉..^^

2008年11月22日 星期六

MySQL刪除重複資料

最近發現公司DB裡某個資料表異常的大,後來發現是RCS主機會每1分鐘insert4~10筆的資料進去~
所以還沒一年就有快2百萬筆記錄,每當使用者透過UI查詢就會造成MYSQL龐大的搜尋,更何況敝
公司還提供手機查詢的功能,這些記錄是有重覆性的,就像下面這樣..

sn dt tt tp
1 2008-02-26 17:01:00 香蕉 加樂福
2 2008-02-26 17:01:00 西瓜 金銀倒
3 2008-02-26 17:01:00 香蕉 加樂福
4 2008-02-26 17:01:00 西瓜 金銀倒
5 2008-02-26 17:02:00 蘋果 加樂福
6 2008-02-26 17:02:00 牛奶 金銀倒
7 2008-02-26 17:02:00 蘋果 加樂福
8 2008-02-26 17:02:00 牛奶 金銀倒

在時間點2008-02-26 17:01:00 就會有相同是tt香蕉 及 tp加樂福 的資料重覆,由於找不到insert
來源的那支程式在哪執行..所以我就決定先把重覆的刪除,並由SERVER排程去執行。

好用的MYSQL語法 ALTER IGNORE TABLE 資料表 ADD UNIQUE INDEX(欄位1,欄位2);

假設我這Table name 是songlist,欄位1是tt,欄位2是tp,SQL語法組合起來如下...
ALTER IGNORE TABLE songlist ADD UNIQUE INDEX(tt,tp);
之後就會發現重覆的資料已經不見了....^^

sn dt tt tp
1 2008-02-26 17:01:00 香蕉 加樂福
2 2008-02-26 17:01:00 西瓜 金銀倒
5 2008-02-26 17:02:00 蘋果 加樂福
6 2008-02-26 17:02:00 牛奶 金銀倒

##EasyReadMore##