2015年3月30日 星期一

瀏覽器Cache問題

JavaScript或CSS修改後,網站老是抓到舊的檔案

1.使用ASP.NET MVC可以用bundles方法,檔案後方會出現v=XXXXXXX,只要檔案改內容xxxxxx則會不同。

注意:如果使用bundles,Web.config的compilation 設定debug="true"則會無效(網站發行後則不會有debug),得另行加入BundleTable.EnableOptimizations = true;

2.使用小技巧,強制每次JavaScript檔案後面都會有版本。

2015年1月27日 星期二

X-Frame-Options 錯誤

在網站裡面iFrame嵌入ASP.NET MVC5專案的網頁,會出現X-Frame-Options的安全性錯誤(此內容無法在框架中顯示)
解決方式: 覆寫此設定在Global.asax.cs

AntiForgeryConfig.SuppressXFrameOptionsHeader = true;

2014年12月29日 星期一

ReportViewer 載入時間過長,加上Loading畫面

ReportViewer 載入時間過長,加上Loading畫面(使用ExtJS)

var myMask = new Ext.LoadMask(viewport, { msg: '處理中...' });
myMask.show();
var iframe = document.getElementById("mainContent");
iframe.onload = function () {
    myMask.hide();
  };
Ext.getDom('mainContent').src = "http://Site/Report.aspx"

2014年12月4日 星期四

刪除或修改暫存表格方法 (GLOBAL TEMPORARY TABLE)


新增欄位

TRUNCATE TABLE TPMPTABLE;
ALTER TABLE TPMPTABLE ADD (F1 VARCHAR2(6));

刪除表格TPMPTABLE

DROP TABLE TPMPTABLE;

刪除表格若出現以下錯誤

錯誤報告 - SQL 錯誤: ORA-14452: 嘗試建立, 更改或捨棄已在使用中之暫時表格的索引 14452. 00000 - "attempt to create, alter or drop an index on temporary table already in use" *Cause: An attempt was made to create, alter or drop an index on temporary table which is already in use. *Action: All the sessions using the session-specific temporary table have to truncate table and all the transactions using transaction specific temporary table have to end their transactions.


1.確定使用此表格的SID

SELECT SID, SERIAL# FROM V$SESSION V 
WHERE SID IN (SELECT SID FROM V$LOCK  L, DBA_OBJECTS O 
WHERE L.ID1 = O.OBJECT_ID AND O.OBJECT_NAME =UPPER('TPMPTABLE'));

2.刪除SESSION,成功後再做一次刪除表格動作(刪除SESSION的ORACLE帳號權限必須夠大)

ALTER SYSTEM KILL SESSION 'SID, SERIAL#';



2014年12月3日 星期三

Join至其他table並抓到最大的日期

取得table最大日期

SELECT K1,K2,D FROM T1
WHERE D = (SELECT MAX(D) FROM T1)

錯誤寫法:join至其他table並抓到最大的日期,此寫法會出現
ORA-01799: 資料欄不可以外部結合的方式與一個子查詢結合

SELECT K,D,D2 FROM T1 LEFT JOIN T2 ON T2.K2 = T1.K
AND T2.D2 = (SELECT MAX(D2) FROM T2)

成功寫法:join至其他table並抓到最大的日期

SELECT K,D,D2 FROM T1 LEFT JOIN 
(
  SELECT K2,D2 FROM T2 AA WHERE AA.D2 IN
   (
     SELECT MAX(D2) FROM T2
     WHERE T2.K2 = AA.K2
   )
)C ON C.K2 = T1.K

2014年11月28日 星期五

ORACLE 預存程序回傳錯誤

ORACLE 預存程序回傳錯誤

CREATE OR REPLACE PROCEDURE SPTEST(USERID IN VARCHAR2,RTN OUT VARCHAR2)
IS
  n NUMBER;
BEGIN
  n:=4/0;  
  RTN:= 'OK';
EXCEPTION
  WHEN OTHERS THEN
  RTN:= SQLERRM;
END SPTEST;

2014年10月24日 星期五

使用 FormsAuthentication.SetAuthCookie

使用FormsAuthentication.SetAuthCookie

var acct = "spring";
FormsAuthentication.SetAuthCookie(acct, false);