2010年9月10日 星期五
IREPORT
Print When expression
new Boolean($V{PAGE_NUMBER}.intValue() == 1)
new java.lang.Float( ($V{SUM_TA018_C_1}.floatValue()) /($V{SUM_TB005_C_1}.floatValue()) )
如下面僅僅是兩個數相加
(new BigDecimal( Double.parseDouble($V{SUM_week_1_6} +"") +Double.parseDouble($V
{SUM_week_2_4}+"") ))
這個是Boolean判斷式的寫法
new Boolean($V{REPORT_COUNT}.intValue() % 2 == 0)
new Boolean( $F{SEX}.equals("1"))
這是if 判斷的寫法
$F{quantity} == null ? "No data" : String.valueOf($F{quantity})
Remove line when blank
移除空白行
SQL Server 「逾時過期」的處理方式
基本上 SQL Server 只要在處理大量資料的指令,如 INSERT INTO A SELECT * FROM B 在資料量很大的時候,很容易發生 Timeout ,也就是常見的「逾期過時」錯誤。
SQL Server 本機用 Enterprise Manager 執行的話還好處理,只要更改設定值就好了。(工具->選項->進階,加大逾時秒數)。
但是絕大部份都是在 Remote 下 SQL Command ,只要量稍大,這種「逾期過時」出現的機率也隨之增加。
解決的方式最好是加大 SQL Server Remote Command 的 Timeout 時間,只要在 SQL Queryer 裡面下:
USE master
GO
EXEC sp_configure 'remote query timeout', 6000
GO
RECONFIGURE
GO
6000 代表的是秒數,也就是 6000 秒(SQL Server預設是 600 秒,)。
另一種就是用外部程式來處理,但是可能還是會受限於 SQL Server 的限制,尤其 ADODB 在這部份還有嚴重的Bug,詳見:
PRB: CommandTimeout Does Not Inherit From Connection Timeout
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q195489
程式設定 CommandTimeout 處理的範例:
Dim conn As New ADODB.Connection
conn.Open(ConnStr)
conn.CommandTimeout = 600 '秒
conn.Execute("INSERT INTO A SELECT * FROM B")
conn.Close()
conn = Nothing
需注意的是在 ADODB 2.6 以前,CommandTimeout 不可以設為 0 (無限制時間),非不得以要使用的話,必須使用 ADODB.Command,詳見:
FIX:使用 Connection 物件時的 CommandTimout 屬性問題
http://support.microsoft.com/default.aspx?scid=kb;zh-tw;175264
資料來源:http://blog.robbin0919.com/2008/03/sql-server.html
真是個好物…
趕快收藏…XD
SQL 2000移轉至SQL 2005會出現的問題
卻出現無法刪掉該資料庫底下的舊使用者
錯誤訊息如下:
標題: Microsoft SQL Server Management Studio
------------------------------
使用者 'test' 的 卸除 失敗。 (Microsoft.SqlServer.Smo)
如需說明,請按一下: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=9.00.3042.00&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=卸除+User&LinkId=20476
------------------------------
其他資訊:
執行 Transact-SQL 陳述式或批次時發生例外狀況。 (Microsoft.SqlServer.ConnectionInfo)
------------------------------
資料庫主體在資料庫中擁有 結構描述 且無法卸除。 (Microsoft SQL Server, 錯誤: 15138)
如需說明,請按一下: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=09.00.3042&EvtSrc=MSSQLServer&EvtID=15138&LinkId=20476
----------------------
處理方式如下:
1. 首先執行並登入SQL 2005的Microsoft SQL Server Management Studio
2. 展開test[資料庫]
3. 展開[安全性]
4. 展開[結構描述]
5. 刪除結構描述中的[test]
6. 再回到[使用者]
7. 即可刪除使用者中的[test]
----------------------
奇怪的地方就是,
沒辦法直接在使用者的介面,
就清除或變更結構描述。
真是不夠直覺式的介面…
這個問題已經卡了第三次,
備份一下,不然下次會再卡┬_┬。
SQL Server Native Client 10 ODBC won't load library on Windows 2000
Could not load the setup or translator library.
http://www.experts-exchange.com/Microsoft/Applications/Q_24084897.html
上面那個外國人跟我遇到一樣的問題,
中文的訊息會顯示:不在有可用的提供者,請確認提供者安裝正確。
結果發現微軟有這個
os版本表
SQL Server Native Client Version | Supported Operating Systems |
SQL Server Native Client (SNAC9) | Microsoft Windows 2000 Service Pack 4 or later Microsoft Windows Server 2003 or later Microsoft Windows XP Service Pack 1 or later Microsoft Windows Vista Microsoft Windows 2008 Server |
SQL Server 2008 Native Client (SNAC10) | Microsoft Windows Server 2003 SP1 or later Microsoft Windows XP Service Pack 2 or later Microsoft Windows Vista Microsoft Windows 2008 Server |
可連接資料庫版本
SQL Server Native Client Version | Supported SQL Server Versions |
SQL Server Native Client (SNAC9) | Microsoft SQL Server 7.0 Microsoft SQL Server 2000 Microsoft SQL Server 2005 Microsoft SQL Server 2008 Next SQL Server version |
SQL Server 2008 Native Client (SNAC10) | Microsoft SQL Server 2000 Microsoft SQL Server 2005 Microsoft SQL Server 2008 Next two SQL Server versions |
資料來源:http://blogs.msdn.com/b/sqlnativeclient/archive/2008/02/27/microsoft-sql-server-native-client-and-microsoft-sql-server-2008-native-client.aspx
結論…
以目前來看,還沒新版的Sql Server上市前
SNAC9 相容性 >>>> SNAC10相容性
囧…
沒事不要灌太新。
2010年8月18日 星期三
1分鐘快速去除msn廣告
也不用下載XX純淨版,
修改後重登msn馬上去除,
每天彈來彈去又該死的展開式(動畫式)的廣告,
還有聊天視窗下面跑馬燈式的廣告。
著手淨化你的msn和節省不必要的頻寬吧。
msn測試版本為 2009(Build 14.0.8089.726)
編輯
C:\WINDOWS\system32\drivers\etc\hosts
在最後加入
127.0.0.1 rad.msn.com
127.0.0.1 rad.live.com
完成
資料來源:http://briian.com/?p=642
2009年12月6日 星期日
2009年7月8日 星期三
JavaScript 民國年日期加減函數
User提了一個需求,
當輸入一個日期時,
自動算出輸入的日期 加一年減一日
於是google了一下找到一個可用的程式,
但是裡面有些bug,
程式中月份沒先減再加,以致於天數的加減會算錯,
以下是修正為民國年並拿掉不會用到的功能。
------------------------------------------------------------
加365日
alert(addDate(4,365,'0960301'));
→顯示 0970229
加一年 減一日
addDate(4,-1,addDate(1,1,'1000301'));
→顯示 1000229
function addDate(type,NumDay,dtDate){
var date = new Date();
type = parseInt(type); //類型
lIntval = parseInt(NumDay);//間隔
date.setYear(parseInt(dtDate.substr(0,3),10) + 1911); //年設定
date.setMonth(parseInt(dtDate.substr(3,2)-1,10) ); //月設定
date.setDate(parseInt(dtDate.substr(5,2),10)); //日設定
switch(type){
case 1 ://年
date.setYear(date.getYear() + lIntval)
break;
case 2 ://季度
date.setMonth(date.getMonth() + (lIntval * 4) )
break;
case 3 ://月
date.setMonth(date.getMonth() + lIntval)
break;
case 4 ://天
date.setDate(date.getDate() + lIntval)
break;
default:
}
return LPad(""+parseInt(date.getYear()-1911),"0",3) +'' + LPad(""+parseInt(date.getMonth()+1),"0",2) + '' + LPad(""+parseInt(date.getDate()),"0",2);
}
//向左補零
function LPad(str,sub,len)
{
var str1=str;
while(1)
{
var i=str1.length;
if (i>=len)
{
break;
}
else
{
str1=sub+str1;
}
}
return str1;
}