2010年1月20日 星期三

[Asp].匯入欄位長度>255 的 excel 檔.

目的:
解決1: 有混合資料(文字&數字) 欄位時, asp 讀取該列時, 會讀出 NULL.
解決2: 匯入欄位長度可以 >255 個位元.

解決辦法:
1.修改 connection 的 connection string,
'// 舊的連線字串
'myExcelConnectionString = "DBQ=" & strExcelFileName & ";DRIVER={Microsoft Excel Driver (*.xls)};"
'// 新的連線字串
myExcelConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strExcelFileName & ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1'"
請參考附件的 import_act.asp

2. 修改 web server 上的 register.

1. 在 IIS server 的主機上, 點 "開始" -> "執行", 指令輸入框裡輸入 Regedit , 並按下 Enter.

2. 開啟下面這個項目,
Hkey_Local_Machine/Software/Microsoft/Jet/4.0/Engines/Excel/ImportMixedTypes
修改內容為 Text
3. 開啟下面這個項目,
Hkey_Local_Machine/Software/Microsoft/Jet/4.0/Engines/Excel/TypeGuessRows
修改內容為 0

或直接執行附件 ExcelLargeDataSetting.reg

參考資料:
及


附註: 要被Asp 處理的 excel 的 sheet 要修改 sheet 名稱為 import.

2010年1月19日 星期二

[Bat].重新啟動 IIS 和 Database 用的批次檔

程式目的: 重新啟動 IIS 和 Database, 用來釋放被占用的系統記憶體.

建議用的檔名: restartIISandDB.bat

@echo off
net stop iisadmin /y
net start w3svc
net stop mssqlserver /y
net start mssqlserver
net start sqlserveragent
exit
附註: 可以設排程, 定時來啟動該批次檔.

2010年1月15日 星期五

程式目的:
showHideLayers 調整, 由原本的 visibility 改成 display.


使用方法:
直接取代舊的副程式即可.


source code 如下:
javascript 下載

function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}


function MM_showHideLayers() { //v6.0
var i,p,v,obj,args=MM_showHideLayers.arguments;
for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
if (obj.style) { obj=obj.style; v=(v=='show')?'block':(v=='hide')?'none':v; }
if (v!='bool') {
obj.display=v;
}
else if (obj.display=='block') {
obj.display='none';
}
else if (obj.display=='none' || obj.display=='') {
obj.display='block';
}
}

2010年1月14日 星期四

[Asp].陣列加強版 2010.01.14

程式目的:
加強陣列的功能.

使用範例:
<!--#include Virtual = "/inc/max.Array.Object.asp" -->
<%
dim a2
Set a2 = New maxArrayObject


'// 把字串轉成陣列
a2.fromString("3,1")
'// or 用下面這行指令:
' a2.item = array("3","1")

'// sort asc
' a2.sort()
' response.write a2.toString()



'// sort desc
' a2.fromString("1,3")
' a2.sortDesc()
' response.write a2.toString()

'// check item exist (附註: 數字3 及 字串 "3" 是不相等的)
' response.write "<br/>isExist:" & a2.isExist("3")
' response.write "<br/>isExist:" & a2.isExist(3)
' response.write "<br/>isExist:" & a2.isExist("9")

'// find item. (附註: find 會傳回一個 index)
' response.write "<br/>find 1:" & a2.find("1")
' response.write "<br/>find 3:" & a2.find("3")

'// compre two array, is array equal.
' dim a4
' a4 = a2.getArray()
' response.write "<br/>is array equal:" & a2.equal(a4)



'// append new item.
a2.append("5")
' response.write a2.toString()

'// insert "2" before "3"
' a2.insert "2", 1
'// or
a2.insert "2", a2.find("3")

'// append array, a6 陣列加到 a2 陣列後面.
' dim a6
' a6 = a2.getArray
' a2.appendArray(a6)

'// count item. 查詢某個值在陣列裡出現的次數.
' response.write "<br/>count item 1: " & a2.countItem("1")

'// delete item,
'// 先查詢 "1" 出現在 a2陣列裡, 再使用 a2.deleteIndex 刪除該值.
a2.delete("1")

'// delete from array, 用來一次刪除一堆的值.
dim deleteResult
dim deleteArraySet
set deleteResult = new maxArrayObject
deleteArraySet = array("4","5","6")
deleteResult.setArray(a2.deleteFromArray(deleteArraySet))
response.write "<br/>deleteResult to string: " & deleteResult.toString()
'// 附註: { 2 ,3 ,5 } - { 4 ,5 ,6 } = { 2 ,3 }

'// 計算加總.

' response.write "<br/>sum: " & a2.sum



'// 計算平均.
' response.write "<br/>average: " & a2.average


'// 存取陣列某一筆.
response.write "<br/>item 1: " & a2.item(0)

'// 輸出陣列內容.
response.write "<br/>to string: " & a2.toString()
%>







附件列表: ArrayObject.zip

max.Array.Function.asp , 副程式.
max.Array.Object.asp , 物件化的程式.




附註:
如果您有在使用這個物件, 並有加強他的功能的話, 請再把您修改過的寄給我用, 謝謝.

2010年1月7日 星期四

[Asp].存取不同網站的 session 資料.


程式目的:
存取不同網站的 session 資料.


使用方法:
用 web serivce 去要資料.


附註:
可以把所有 "非" object 資料的 session 以文字方式傳回來, 網站間可以只傳1個變數(比較有效率), 也可以全部變數都傳回來.


  • \SiteA\caller.asp client 端的主程式, 這個範例是去要 server 端的 mem_userid 這個變數回來.
  • \SiteA\inc\WinHttp.asp client 端的副程式
  • \SiteB\xdGetSessionSet.asp server 端的主程式

2009年12月30日 星期三

好用編輯器(Editor)軟體下載

1. firstObject XML editor v2.4
ps: 要格式化 XML或 XSL 這個工具是首選,
第2名是 Notepad++ 外掛 "XML Tools"
第3名是 Microsoft Visual Web Developer 2008 Express Edition


2. notePad++ v5.6.4


3. crimson editor V3.72 Release (May. 14, 2008)
ps: 優點在可以做 column mode (類似DOS 時代裡的 PE2) 去編輯文字,


4. VBSBeautifier v1.10


5. Free JavaScript Editor v4.7
ps: 這個 editor 對 utf-8 的支援不太好, 這個工具可以做 java script 的格式化.
ps: 用 JSMin 可以壓縮您的 JavaScript 檔案, 讓檔案傳輸更有效率.


6. Visual Web Developer 2008 Express
ps: 要格式化 HTML tag, 這個工具是首選,
第2名是用 Notepad++ 外掛 HTML Tidy. 附上的的 tidy.ini 設定檔.
ps: 要開大檔案, 用這個工具來開, 速度最快.


7. WinMerge 2.12.4
ps: 做檔案內容比對首選.

2009年12月28日 星期一

Office 不是一個玩樂的場所, 但 Office 是個很有趣的地方, 也是個會讓人感到挫折與不如意的場所.

不能事事如意, 就隨意吧.
這是豬頭員工. 很感謝某些善良的人, 給我力量.
Posted by Picasa

Facebook 留言板