在去年 3月份的時候有推出新的 1.1 修正版本。在今年 4/3/2012 又再度發表了新版本,但這次卻是發表一個 2.0 與 1.2 的版本,主要是針對 SQL Server 2012 的版本上市。

 

現在重點來了,原本使用的 1.1 版本的 dtsx 的檔案,可以很順利升級到 1.2 沒有問題。

但是把 dtsx 抓到 SSDT (SQL 2012 的 BIDS 新名稱)升級卻會發生錯誤。

目前我的解決方法為,重新拉一個來設計。但這會影響所有的升級計畫。

,

Posted by 王圓外 at 痞客邦 PIXNET 留言(0) 引用(0) 人氣()

就在今天,一直是好好的程式卻突然間出現錯誤了,卻出現了 “The LDAP server is unavailable.

在查詢過後,發現 .NET 3.5 新的 AD 管理的 System.DirectoryServices.AccountManagement 下的 PrincipalContext 在建立時發生錯誤。

下面是原本發生錯誤的語法:

using (var ctx = new PrincipalContext(ContextType.Domain, strDomain))
{
...............
}

由於我傳入的 strDomain 是抓取登入帳號前面的網域名稱,原本好好的卻掛掉了。

解決的方式,只要把網域的全名加上去就可以了。

Posted by 王圓外 at 痞客邦 PIXNET 留言(0) 引用(0) 人氣()

其實我的 NB 更換新版的 MSN 也好一陣子了,但是就是經常發現在公司要連結 MSN 卻連不上,一樣有權限但別人連的上我連不上,只差在我用新版的 MSN,我再家裡可以上 MSN ,只要不關機的情況下,到了公司也是可以連上 MSN,但是如果在公司重開機後就連不上了。

最近才有機會好好檢視其原因到底是為什麼,主要原因在於新版的 MSN 不在只是透過 IE 上的 Proxy 設定連線,而有部分程式是走 Winhttp 的 proxy 設定連線,但是基本上 winhttp proxy 的預設值就是直接存取,所以就算再 IE 上設定了 proxy 還是連不上,唯一的辦法就是去修改 winhttp 的 proxy 設定。

設定語法:

netsh winhttp set proxy [proxy-server=]<server name> [bypass-list=]<hosts list>

但是呢?又發現另外一個問題,在公司設定完後,回到家裡,MSN 又上不了了,所以只好又要在改回來了,取消設定的方式

netsh winhttp reset proxy

以上設定方式有興趣的人可以測試看看。

Posted by 王圓外 at 痞客邦 PIXNET 留言(1) 引用(0) 人氣()

由於自己的 NB 每天都需要搬來搬去,白天在公司,晚上在家裡,但公司就需要透過 Proxy 上網,所以我就自己寫了一個 proxy.pac 的自動組態檔案,可以自動判斷我現在是在家還是在公司。

但是問題來了,使用 IE 都很正常,用了 Firefox 4 之後,竟然不 work 了。

在 firefox 的技術論壇上終於到找到解法了, 請詳見 http://support.mozilla.com/zh-TW/questions/804868

其實解法很簡單,就是 FF4 預設會把 myIpAddress() 解析回傳 IPv6 Address 而不是 IPv4 的 Address,所以每次都會變成不通過 Proxy 上網,當然不會 work。

設定方式:

Posted by 王圓外 at 痞客邦 PIXNET 留言(0) 引用(0) 人氣()

你常常覺得自己工作認真,但升遷嘉 獎時卻總是被忽略嗎?《Power!:面對權力叢林,你要會耍善良心機》作者傑夫瑞‧菲佛(JeffreyPfeffer)指出,想在職場上更上一層樓, 不要指望只是默默努力,別人就會主動發現,因為如果你總是低調行事,當然不會有人注意到你,更何況是賞識你的能力與潛力了。

菲佛強調,「讓有決定權的人知道你表現有多好」是左右一個人升遷的關鍵,這不是逢迎拍馬,而是學會經營組織內的人際關係,做好自我形象管理。想要擺脫「存在感薄弱」的窘境,他有以下4點建議:

1.替自己創造「曝光效應」:

主管之所以常常沒看見員工的努力,並不是他們心存偏見,而是往往光自己的工作都忙不完了,無暇顧及所有細節。所以絕對不可以假設上司對你完成了什麼事都瞭若指掌,要讓上司知道你做了什麼,最好的方法就是直接告訴他們,用數字或證據明白地陳述自己所達成的績效。

2.由你來定義績效評量標準:

一件工作的表現,可以有各種面向的解讀,例如你為產品大做廣告,可能因此提升了產品市占率,卻也造成毛利率的下降。因此,想要強化別人對你的良好印象,你可以不斷強調自己表現出色的那一面,並防堵對你不利的那一面。

Posted by 王圓外 at 痞客邦 PIXNET 留言(0) 引用(0) 人氣()

沈默的食指族
自從iPhone上市之後,身邊的人個個成為蘋果一族,食指功力越來越強,每次聚會到一半,拿出手機拍完照,就開始各自低頭玩手機,

急著把照片傳到 Facebook上與朋友分享,

Posted by 王圓外 at 痞客邦 PIXNET 留言(1) 引用(0) 人氣()

在 SSRS 2008 R2 之前要讓報表匯出的 Excel 工作表名稱有一定命名方式是不可能的,在先前我曾寫過一個 VBScript 來改寫 Sheet Name 來達到一樣的效果,請參考 [VBScript] 變更 Excel 檔案中的 SheetName 以及 Link 網址 ,但現在 R2 之後不需要這麼辛苦了,可以在匯出的報表上自動就產生好名字了。

其方法很簡單,只要在你想要產生匯出命名的 tablix 上,找到 PageName 的屬性,如下圖,匯出後即可顯示想要的樣子了。

匯出結果如下:

renameexcel2.png

Posted by 王圓外 at 痞客邦 PIXNET 留言(0) 引用(0) 人氣()

當 Reporting Services 的訂閱擁有者離職或被 AD 刪除後,相關的訂閱會被失效而無法發送,除了用管理者身分去一個一個重新定義訂閱以外,簡單的方法是使用 SQL 語法,將舊的人員改成新的人員。

SQL 如下:

DECLARE @OldUserID uniqueidentifier
DECLARE @NewUserID uniqueidentifier
SELECT @OldUserID = UserID FROM dbo.Users WHERE UserName = 'DOMAINA\OldUser'
SELECT @NewUserID = UserID FROM dbo.Users WHERE UserName = 'DOMAINA\NewUser'
UPDATE dbo.Subscriptions SET OwnerID = @NewUserID WHERE OwnerID = @OldUserID

SQL 參考來源 : Tip: Change the Owner of SQL Reporting Services Subscription


Posted by 王圓外 at 痞客邦 PIXNET 留言(0) 引用(0) 人氣()

以前如果要大量修改檔案的話不就是自己寫 bat 批次檔或者是script,懶得寫程式就是找大量修改檔名的軟體,這類的軟體太多了~

但是如果懶得找軟體,又只是簡單的修改檔名的話,可以使用 PowerShell 指令簡單修改。

假設我要修改附檔名為mp3 的檔案,把 "_" 改成 " " 只需下面指令即可。

 

gci *.mp3 | % { rename-item $_ $_.Name.Replace("_", " ") }

Posted by 王圓外 at 痞客邦 PIXNET 留言(0) 引用(0) 人氣()

最近實作了一個列舉的 Flag 來處理權限的機制,也在無意之間發現了 .NET 4.0 多了一個 HasFlag 這個 Function ,這倒是節省了很多寫 code 的程式與判斷。

如下的權限身分:

public enum SystemRoles
{
    None = 0,                       // 0000 0000 0000 0000  0x0000
    ReportUser = 1 << 0,            // 0000 0000 0000 0001  0x0001
    WebUser = 1 << 1,               // 0000 0000 0000 0010  0x0002
    
    ACCUser = 1 << 6,               // 0000 0000 0100 0000  0x0040
    HRUser = 1 << 7,                // 0000 0000 1000 0000  0x0080

    ReadyOnlyAdmin = 1 << 8,        // 0000 0001 0000 0000  0x0100

    ACCAdmin = 1 << 10,             // 0000 0100 0000 0000  0x0400
    HRAdmin = 1 << 11,              // 0000 1000 0000 0000  0x0800
    
    SystemAdmin = 1 << 14,          // 0100 0000 0000 0000  0x4000
    ITAdmin = 1 << 15,              // 1000 0000 0000 0000  0x8000
}

如下面的情況,早期要得到 hasFlag1 的值,必須使用 hasFlag2 的方式,才能得到相同的結果,在程式的判讀上也比較吃力,現在使用 HasFlag() 的 Function 變得更簡單易懂了。

SystemRoles flagEnum = SystemRoles.WebUser | SystemRoles.HRUser | SystemRoles.ReportUser;
        
bool hasFlag1 = flagEnum.HasFlag(SystemRoles.WebUser);
bool hasFlag2 = ((flagEnum & SystemRoles.WebUser) != 0) ? true : false;

Posted by 王圓外 at 痞客邦 PIXNET 留言(0) 引用(0) 人氣()