2011年5月31日 星期二

中繼資料管理員有錯誤

某天,啟動SSAS後,想要檢視Server Properties, 結果出現了這個莫名的錯誤



 中繼資料管理員有錯誤。 'Market Basket ~MC' Cube 所參考的識別碼為 'Market Basket ~MC-Order Number',名稱為 'Market Basket ~MC-Order Number' 的維度不存在。
中繼資料管理員有錯誤。 從檔案 '\\?\C:\Program Files\Microsoft SQL Server\MSAS10_50.SQL2008\OLAP\Data\Adventure Works DW 2008R2 SE.0.db\Market Basket ~MC.1.cub.xml' 載入 Market Basket ~MC cube 時發生錯誤。
 (Microsoft.AnalysisServices)




 
切到目錄下查看, 刪除掉Market Basket ~MC.1.cub.xml後再檢視一次Server Properties, 這次出現Market Basket.3.dms.xml發生錯誤.


最後將所有Market Basket開頭的檔案都刪掉就正常了. 這些看來都是sample cube,所以不要也罷

2011年5月30日 星期一

SQL Server 找不到或無法存取伺服器

裝了一台SQL Server 2005,本機連結都沒問題, 但外部電腦要連進來時出現

例外物件:System.Data.SqlClient.SqlException
例外訊息:建立連接至 SQL Server 時,發生網路相關或執行個體特定的錯誤。找不到或無法存取伺服器。確認執行個名稱是否正確,以及 SQL Server 是否設定為允許遠端連線。 (provider: SQL 網路介面, error: 26 - 搜尋指定的伺服器/執行個體時發生錯誤)
例外來源:Void OnError(System.Data.SqlClient.SqlException, Boolean)

檢查了 SQL Server Surface Area Configuration 下的Surface Area Configuration
DAC (Enable remote  DAC)也有勾選
防火牆也關了
但外部連結仍然不通.

最後查到是因為我把 SQL Server Browser 服務給關掉了,  開啟後連線就OK了.


MSDN上說明SQL Server Browser服務 ,  我也是一如往常...有看沒有很懂(....汗)


SQL Server Browser 服務
SQL Server Browser 程式以 Windows 服務執行。SQL Server Browser 會接聽 MicrosoftSQL Server 資源的內送要求,並提供有關電腦上所安裝之 SQL Server 執行個體的資訊。SQL Server Browser 完成下列動作:
  • 瀏覽可用伺服器的清單
  • 連接到正確的伺服器執行個體
  • 連接到專用管理員連接 (DAC) 端點

2015/08/08
如果db主機開啟了windwos firewall,那要記得查看UDP 1443是否有在輸入原則 啟用。

2011年5月24日 星期二

伺服器 'XXX' 上的 MSDTC 無法使用

使用某套裝軟體的某項任務新增功能
結果出現了 伺服器 'XXX' 上的 MSDTC 無法使用的錯誤訊息

原來是服務下的 Distributed Transaction Coordinator未啟動

但開啟服務後,程式跑了半天出不來...

查看事件檢視器發現有一個警告

MS DTC 無法與遠端系統的 MS DTC 通訊。 主要系統的 MS DTC 與次要系統的 MS DTC 建立了 RPC 繫結。 但是次要系統並沒有在逾時期間到期之前 建立反轉 RPC 繫結至主要 MS DTC 系統。 請確認兩個系統之間有網路連線。....

查了半天,原來才發現, 一台Web Server,一台DB Server, 但其中一台的WINDOWS防火牆有開啟,另一台是關閉的.
把防火牆關起來後,就一切正常了.

2011年5月18日 星期三

JQuery UI.Layout使用

前二週用了JQuery UI做了一個project 的demo,效果不錯.
另外,也想要讓網頁中的物件可自動隨著螢幕大小resize,之前同事自已寫了一個javascript function,雖然效果不錯,但有時在某些頁面時仍得要再呼叫一次resize

但有時版面總不如意啊.  所以想使用JQuery UI.Layout這個plug-in看看

試了幾天,雖然有 文件參考  ,但也搞得我七葷八素的, 有些方法或屬性是有看沒有懂..(汗....)
測了好幾天 後,總算抓到了一些撇步了

先建一個Website Application, 原則上Visual Studio 2010會幫你建一個看起來UI效果還不錯的網站.

先在Site.Master.aspx中加入jquery-1.6.min.js、jquery.layout-latest.js、layout-default-latest.css等檔案的參考, 然後加入這段 script

<script type="text/javascript">
        var myLayout;
        $(document).ready(function () {
            //先設定大小再凍結resizer bar
            myLayout = $('body').layout({ applyDefaultStyles: true
                                             , north__closable: false
                                             , north__pane_spacing: 0
                                             , north__resizable: false 

            });
           //這個是想要讓header預設不要出現scrollbar,如果不設,下拉功能選單會出不來
          //和直接設定north__showOverflowOnHover:    true的效果又不一樣
          //且讓asp:menu選單下拉時的z-index在最上面
          //如果把這行拿掉,menu就被蓋在下面都出不來了....
            myLayout.allowOverflow('north');
        });
</script>

上面紅字那段try了二天二夜....真是血淚(哭....)

如果要override pane的css屬性,

可以直接在Site.css加入以下..
 .ui-layout-pane-north {
     border: 0 !important;
     padding:0 !important;
     margin-bottom:0 !important;
     background: none !important;
}
.ui-layout-pane-center {
     border: 0 !important;
     padding:0 !important;
     margin-bottom:0 !important;
     background: none !important;
}

然後在body中放二個div tag

先放
 <div class="ui-layout-center"> 
        <asp:ContentPlaceHolder ID="MainContent" runat="server" /> 
</div>

再放
<div class="ui-layout-north">
        <div class="header">
            <div class="title">
              .........
            </div>
            <div class="loginDisplay">
             ............
             </div>
        </div>
        <div class="clear hideSkiplink">
                <asp:Menu ID="Menu1" runat="server" CssClass="menu" EnableViewState="False" DataSourceID="SiteMapDataSource1"
                    Orientation="Horizontal" StaticSubMenuIndent="16px" OnMenuItemDataBound="Menu1_MenuItemDataBound">
                    <StaticMenuItemStyle HorizontalPadding="20px" VerticalPadding="5px" />
                    <DynamicMenuStyle CssClass="adjustedZIndex" />
                </asp:Menu>
            </div>
< /div>

更多的說明及用法可以好好參考 demo site

做好框架後, 加入幾個頁面,測試了放了updatepanel ,gridview, reportviewer(rdlc), jquery ui accordin及dialog的效果

看來都很完美....

要注意的是reportviewer設置要如下

 <rsweb:ReportViewer ID="ReportViewer1" runat="server" Width="100%" Height="100%"  SizeToReportContent="true" >
    </rsweb:ReportViewer>

width和height有沒有設100%好像沒關係, 但SizeToReportContent是一定要設的,這樣就會依螢幕大小自已resize 了

最後.....轉圈...灑花.....



2011年5月10日 星期二

使用LINQ 將 選取的listbox item轉成string 或string array

using System.Web.UI.WebControls;

string strArray[] = listboxTest.Items.Cast<ListItem>().Where(item => item.Selected).Select(p => p.Value).ToArray();

 string strTest = String.Join(",", listboxTest.Items.Cast<ListItem>().Where(item => item.Selected).Select(p => p.Value).ToArray());
         

Informix Debug方式

在stored procedure 中, 任一要trace的地方
set debug file to "xxxxx.out";

如果要trace所有的變數
trace on;



如果要trace些變數,則利用參數concation方式,
trace variableName1||variableName2 ;

最後記得要 將trace 關掉..
trace off;


create procedure spTest()
   define variableName1 varchar(10); 
  define variableName2 varchar(10);

  set debug file to 'abc.out';

  foreach
     select col1, col2 
         into  variableName1,variableName2
       from  testTable

      trace variableName1||variableName2 ;
  end foreach;

  trace off;
end procedure ;

自動記錄滑鼠點選操作

為了一個需求,需要人工去點選幾個滑鼠的點選行為,找了幾種工具,覺得GS Auto Clicker最實用,極符合我的需求,尤其是多個固定位置的button點擊,解決了一個很耗時間的工作。 最後設定完預設hotkey F8為啟用鍵,就可以開始自動做工了。再按F8結束工作。 GS Au...