3月 2006 - Posts

SQL Server Management Studio で ROUND 関数を使うとエラーが発生する

SQL Server Management Studio で ROUND 関数を使うとエラーが発生します。
実行したクエリ: SELECT ROUND(0.5,0)
エラーメッセージ: 「バッチの実行中にエラーが発生しました。エラー メッセージ: 演算でオーバーフローしました。」

私が確認できた範囲ですと ROUND 関数の第一引数(numeric_expression)が 0.5 < numeric_expression > 1 のとき発生するようです。

@IT の会議室に本件に関するスレッドがあります。
@IT / SQLSERVER2005_ROUND関数のバグ?

MSDN フォーラムへフィードバックしました。
MSDN フォーラム / SQL Server Management Studio で ROUND 関数を使うとエラーが発生する

Posted by Ryosuke Uemoto | with no comments

SQL Server 2005 Express Edition でデータベースの容量が4GBを超えたときの挙動

@IT のフォーラムで SQL Server Express Edition のデータベース容量が制限値とされている 4GB を超えた場合の挙動を尋ねる投稿がありました。
@IT / SQLServer2005Expressの容量制限超過時の挙動

私もこの件について調査中でしたので、実際に4GBを超えるデータベースを作成して C# で接続した結果を投稿しました。
調査結果をこのブログにも載せておきます。

4GBの制限値を超えた段階でデータを追加しようとすると SqlException が発生します。

データベース 'データベース名' にオブジェクト 'dbo.テーブル名'.'PK_テーブル名' の領域を割り当てられませんでした。'PRIMARY' ファイル グループがいっぱいです。不要なファイルの削除、ファイル グループ内のオブジェクトの削除、ファイル グループへの新しいファイルの追加、またはファイル グループの既存のファイルの自動拡張の設定のいずれかを行ってディスク領域を作成してください。

この状態でもデータを読み取ることは可能です。
イベントログにはこのようなメッセージが記録されます。

イベントの種類: エラー
イベント ソース: MSSQL$SQLEXPRESS
イベント カテゴリ: (2)
イベント ID: 1827

説明:
CREATE DATABASE または ALTER DATABASE が失敗しました。結果として生成される累積データベース サイズが、ライセンスされている データベース ごとの制限 4096 MB を超えることになります。

2007 Microsoft Office System Beta-1 Technical Refresh

Office 12 こと 2007 Microsoft Office System の最新ベータ版が公開されました。
NDA に抵触するおそれがあるので詳しい紹介は出来ませんが、以前のベータ版と比べても Excel の KPI 対応が大幅に強化されています。

リボン インターフェース もその操作感覚に慣れると病み付きになります。
ユーザーの「使いこなし度」を向上させようとする意気込みが伝わってきます。

こちらからベータプログラムへの申し込みができます。
私たちのフィードバックでより良い製品になると良いですね。

Microsoft Office : Microsoft Office の未来 - 次期リリースに関するお知らせ

Posted by Ryosuke Uemoto | with no comments
Filed under:

ストアドプロシージャはセキュリティの要

多くの場合、データベースのデータを操作する手段として SQL という問い合わせ言語を用いますが、一歩進んだ手段としてストアドプロシージャ (Stored Procedure: データの操作手順を予め定義して DBMS に保存しておく仕組み) というものがあります。

ストアドプロシージャを使用するということは、予め定義された操作しか行えないということですから、データを操作する際にストアドプロシージャの使用を強制することで不正な操作からデータを保護することができます。

ストアドプロシージャはデータの更新や挿入や削除といった操作だけに使われがちですが、データの参照に積極的に用いることで情報漏洩への耐性を高めることができます。

ストアドプロシージャの一種にビュー (View: 生のテーブルから必要な列だけを予め選択しておく仮想的なテーブル) がありますが、ビューを活用することで、見る必要のないデータは見えない、という運用が可能となります。

また、必要な全ての操作をストアドプロシージャ経由に限定してしまえば、クライアントからデータベースの論理設計が見えなくなります。
データベースの論理設計を隠すことは悪意の操作に対する効果的な防衛策だと云えます。

「必要のない操作は実現不可能」な環境作りが情報漏洩対策の要だと思います。

Posted by Ryosuke Uemoto | with no comments

Office Excel Add-in for SQL Server Analysis Services その3

Office Excel Add-in for SQL Server Analysis Services その2 の続きです。

今回は、サーバ側でキューブのメジャー (Measure: 分析用の定量化や集計が可能なデータ) に書式設定をして Office Excel Add-in for SQL Server Analysis Services から利用する方法を紹介します。

まずは Visual Studio 2005 (Business Intelligence Development Studio) で作業をします。
既存のキューブを開き、任意のメジャーを選択し、FormatString プロパティに注目してください。

FormatStringプロパティに注目

このプロパティに設定した書式でメジャーの値が修飾されます。
書式を入力したらキューブを再処理してください。

キューブの処理が完了したら Excel を起動して書式付きのメジャーを確認します。
書式付きのメジャーを表示するための準備をします。
Excel のメニューバーを [キューブ分析]-[オプション] の順にたどってください。

[キューブ分析]-[オプション]

[オプション] ダイアログが開いたら [書式設定] タブに切り替えて [書式設定済みの値] チェックボックスにチェックを入れてください。

[書式設定済みの値] チェックボックス

これで準備が整いました。
データを表示します。

サーバ側で定義した書式が適用される

メジャーの値が FormatString プロパティで定義した通りに修飾されています。

Excel 標準のピボットテーブルにはサーバ側で定義された書式を適用できません。

Amazon S3 - Simple Storage Service

Amazon から Amazon S3 - Simple Storage Service の紹介メールが届きました。

XML Web サービス や REST をインターフェースに持つ新手のストレージサービスなんですね。

Pricing

  • Pay only for what you use. There is no minimum fee, and no start-up cost.
  • $0.15 per GB-Month of storage used.
  • $0.20 per GB of data transferred.

価格も安いですね。
色々と実験してみようと思います。

Posted by Ryosuke Uemoto | with no comments

Office Excel Add-in for SQL Server Analysis Services その2

Office Excel Add-in for SQL Server Analysis Services その1 の続きです。

今回は Excel 標準のピボットテーブルと Office Excel Add-in for SQL Server Analysis Services とでドリルダウン機能を比較します。

ピボットテーブルでダブルクリックによるドリルダウン操作を行うと、下の階層へ掘り進む度に縦軸がずれて行きます。

ドリルダウン前。B列に注目。

ドリルダウン後。B列に注目。

Office Excel Add-in for SQL Server Analysis Services でダブルクリックによるドリルダウン操作を行うと、下の階層の分析軸 (分析の視点) が列を占有しないので、縦軸がずれません。

ドリルダウン前。B列に注目。

ドリルダウン後。B列に注目。

Office Excel Add-in for SQL Server Analysis Services には、分析軸上で右クリックすると現れるコンテキストメニューに [ドリルダウン] 、[ドリルアップ] という項目が用意されました。

[ドリルダウン] メニュー

ダブルクリックによるドリルダウンとコンテキストメニューによるそれとの違いは、前者がドリルダウンしなかった項目を画面上に残したまま任意の項目を掘り下げるという挙動であるのに対して、後者はドリルダウンした項目のみに絞り込んで表示するという挙動であるというところにあります。

ダブルクリックによるドリルダウン

[ドリルダウン] メニューによるドリルダウン

[ドリルダウン] メニューの使用により掘り下げられた階層を元に戻すには [ドリルアップ] メニューを使用します。

[ドリルアップ] メニューによるドリルアップ

Office Excel Add-in for SQL Server Analysis Services その1

以前の投稿 (SQL Server 2005 と BI (ビジネスインテリジェンス) その2) で触れました Excel のビジネスインテリジェンス機能を強化するためのアドインを紹介していきます。

アドインの名称は Office Excel Add-in for SQL Server Analysis Services です。
ダウンロードはこちらから可能です。
Excel 2002/2003 Add-in for Analysis Services SP1 のダウンロード

このアドイン、実際に使ってみると Excel 標準のピボットテーブルと代わり映えがしないというのが第一印象になると思います。

Excel 標準のピボットテーブル

Office Excel Add-in for SQL Server Analysis Services を利用した分析画面

しかし、標準のピボットテーブルを使った分析に比べ、よりリッチな出力を得ることが可能となります。

たとえば、分析中の領域に行や列の挿入が可能となります。
ピボットテーブルの場合ですと、ピボットテーブルが表示されている領域は特殊な固定の領域ですから、行や列を追加したくてもそれは不可能です。分析中の領域にユーザー定義の領域を挿入したくても無理なのです。

ピボットテーブルに行や列の追加は不可能

Office Excel Add-in for SQL Server Analysis Services の場合でも、標準の状態ではピボットテーブルによく似た特殊な領域が表示されますから行や列の追加は不可能です。
しかしこのアドインは [自由形式に変換] という機能でこれを実現します。

[自由形式に変換] メニュー

自由形式というのは Excel 本来のプレーンなセル形式のことで、この形式に変換することで特殊な形式では不可能だった操作が可能となります。「ただの普通の」セル形式に変換されるわけですから、行や列の追加だけでなく、Excel が本来持っている機能は何でも使えます。

自由形式で編集が自由自在

UPS を使いましょう

ハードウェアを、過電流 (サージ) や、停電による不意のシャットダウン等の電源トラブルから保護するための装置として UPS (Uninterruptible Power Supply: 無停電電源装置) というものがあります。

UPS を用いてサーバだけを保護しているという環境を多く見かけますが、例えば過電流は UPS に保護されていないクライアントマシンから LANケーブルを通してサーバに流れ込むことも考えられますし、壁から生えている ADSL の配線からサーバに流れ込むことも有り得ます。
情報資産を電源トラブルから適切に保護するためには、電流の経路となり得るハードウェアを見極めて UPS やサージ保護装置を導入する必要があります。

なお、UPS を導入する際には保護の対象とするハードウェアの消費電力に応じて適切な製品を選択しなければなりません。
こちらに UPS を選択する際の目安があります。
APC / Select UPS

部門レベルの消費電力が低いサーバやクライアントマシンの保護に特化した UPS なら1万円ほどで購入可能です。
NTT-X / APC ES 500 BE500JP

備えあれば憂いなし、です。UPS を導入しましょう。

Posted by Ryosuke Uemoto | with no comments

ASP.net の Webフォームで日付を選択する UI

ASP.net の Webフォームで日付をカレンダー形式で扱うには、通常は System.Web.UI.WebControls.WebControl.Calendar クラスを利用します。
しかし、このコントロールはドロップダウン形式の UI では無いため、Windowsフォームの DateTimePicker コントロールと同様のユーザー体験を実現できないところに不満があります。

解決策としては Calendar コントロールの呼び出し方を工夫してポップアップ形式のコントロールを自作する方法 もあるようですし、有料でも構わないという場合はサードパーティ製の商用コントロールを利用する手もあります。

商用のカレンダーコントロールの中で私が気に入ったのはこちらです。
リンク先にはデモ用にいくつかのカレンダーが用意されているので動作を試すことができます。
obout Calendar

2ヶ月ぶんのカレンダーを一度に表示したり、ページの再読込み無しで月の移動ができたりとなかなかの高機能ぶりだと思います。

機能を絞った Basic Version は無料で提供され、機能が豊富な Pro は有料だそうです。
価格表はこちらです。
Purchase Calendar License

Posted by Ryosuke Uemoto | with no comments

InfoPath 2003 と WSS との連携

以前参加したセミナーで InfoPath 2003 と WSS とを連携するデモを見ました。
InfoPath 2003 と Windows SharePoint Services

今回、そのデモを再現し、画像付きの解説を作成してみました。
InfoPath 2003 と WSS との連携

画像をクリックすると表示サイズが大きくなります。
画像の右上にある [次へ] リンクで手順を進めてください。

Posted by Ryosuke Uemoto | with no comments
Filed under:

Microsoft Office Business Scorecard Manager 2005

2月に Microsoft Office Business Scorecard Manager 2005 という新製品が登場しています。
この製品はビジネスインテリジェンスのひとつである KPI (Key Performance Indicator : 主要業績評価指標) を作成するための開発環境と、KPI を利用するための UI を WSS (Windows Sharepoint Services) の Webパーツとして提供します。

KPI の用語解説はこちらをご参照ください。
@IT 情報マネジメント用語辞典: KPI


製品名に Microsoft Office と付いていますが、開発環境をインストールすると、その名の通り、Office 製品群のひとつとして Access や Word や Excel と同じ[スタート]\[すべてのプログラム]\[Microsoft Office]に起動用のショートカットが作成されます。

KPI の作成は SQL Server 2005 と Visual Studio 2005 (Business Intelligence Development Studio) との組み合わせでも可能なのですが、Microsoft Office Business Scorecard Manager 2005 はより高度な KPI を作成することが可能です。

すでに上記の組み合わせで KPI を作成しているユーザーは、Microsoft KPIUtil.exe tool for Microsoft Office Business Scorecard Manager 2005 というユーティリティを利用して SQL Server 2005 と Microsoft Office Business Scorecard Manager 2005 とで KPI の相互変換が可能です。
このユーティリティ、現在は英語版しか存在しませんが、操作のステップ数が少ないので使い勝手は悪くないです。

UI 部分である Webパーツの使い勝手ですが、操作方法に迷うことはないと思います。ただ、解像度の高いディスプレイを使わないと情報の一覧性が損なわれるためイライラするかもしれません。

興味を持たれた方はこちらから 体験版自習書 をダウンロードしてお試しください。

Access マクロの挙動

Microsoft Access 2003 を触っていて気づいたことがあります。
マクロを呼び出す方法によって挙動が異なるということです。

レポートを作成します。

レポート名: レポート1

マクロを作成します。

マクロ名: マクロ1
アクション: 出力
アクションの引数:オブジェクトの種類: レポート
アクションの引数:オブジェクト名: レポート1
アクションの引数:出力ファイル形式: Snapshot Format
アクションの引数:出力ファイル: c:\レポート1.snp
アクションの引数:自動起動: いいえ

フォームを作成し、ボタンを配置します。

フォーム名: フォーム1
ボタン名: ボタン0

ここからが本題です。
マクロによって作成される Snapshot ファイルは、2回目以降の動作時には前回作成されたファイルを上書きすることになるのですが、フォームに配置したボタンのクリック時イベントで マクロ名 [マクロ1] を直接指定した場合と、イベントプロシージャを作成して DoCmd.RunMacro("マクロ1") をコーディングした場合とで上書きする際の挙動が異なります。
前者の場合は上書きを確認するダイアログが表示されます。
後者の場合は暗黙的に上書きが行われます。

Posted by Ryosuke Uemoto | with no comments
Filed under:

激安シンクライアント

昨年の春くらいに見つけて、ジャンク扱いとはいえその価格に驚いた激安のシンクライアントです。

PS/PLAZA WAKAMATSU

ちなみにこれらのハードウェアは用語としては正しくは WBT (Windows-Based Terminal) です。シンクライアントを構成する歯車のうちのクライアント側を担当する部分です。
「シンクライアント」とは、ユーザインターフェースとしてのクライアント側システムとアプリケーションをホストするサーバ側のシステムとを併せたシステムの総称ですから、クライアント側に設置するハードウェアだけを指してシンクライアントと呼ぶのは正しくないということになります。

この激安 WBT、そのままではホイールマウスが使えなかったりと不便もありますが、「シンクライアントとは何ぞや」を客先でデモするときに重宝しています。

SQL Server 2005 と BI (ビジネスインテリジェンス) その4

実際に SQL Server 2000 を SQL Server 2005 にバージョンアップした際に気づいた新機能を紹介します。

まずはパワーアップした Reporting Services です。
Reporting Services とは SQL Server が搭載する帳票発行機能です。RDB や キューブ やその他諸々のデータを元した帳票をWebやExcelやPDFの形式で発行できます。帳票の作成には通常 Visual Studio を利用します。

たとえば Excel を直接キューブに接続すれば手軽にデータを視覚化し多角的な分析を行うことは可能なのですが、定型的な帳票を定期的に発行するという要件には Excel よりも Reporting Services のほうがマッチしています。

Reporting Services で キューブをソースにレポートを定義する場合、キューブからデータを取り出すために MDX(多次元式) という SQL によく似た文法の特殊なクエリ構文を定義しなくてはなりません。
SQL Server 2000 の Reporting Services では、帳票の作成環境である Visual Studio 2003 が MDX のクエリビルダ(GUI操作によるクエリ作成を支援する機能)を搭載していなかったという事情に因り、MDX は原則手書きでした。
分析すべきデータを用意しても、視覚化するためのツールのひとつである Reporting Service の開発生産性が今ひとつだったためにもどかしい思いをした方も居られるのではないかと思います。

SQL Server 2005 、というよりも Visual Studio 2005 と Business Intelligence Development Studio の新機能ですが、これらの新製品は Analysis Services Query Designer という名前で MDX のクエリビルダを搭載しています。これにより視覚的に MDX を定義することが可能となり、帳票開発者の負担が軽減されました。これからはより素早く新規の帳票を開発することができます。
しかし、もちろん、GUIベースの支援機能であるクエリビルダで定義可能な MDX には限界があります。クエリビルダでは実現できないような複雑な MDX を定義するためにはそれなりの知識が必要となりますから、継続的な学習は必要だと思います。

個人的にとても気に入ったのが Date Picker の搭載です。
帳票にパラメータとして日付を渡すことはよくあると思います。Date Picker とはドロップダウンのカレンダーを実現する UI です。
Reporting Services の利用者が Web の UI から日付を入力する際に、SQL Server 2000 の時代には、ただのテキストボックスに入力する必要がありました。これではユーザビリティが低いと云わざるを得ません。
SQL Server 2005 の Reporting Services では日付型のパラメータは Date Picker として利用者に公開されます。日付の入力がずいぶん楽になったと思います。

More Posts Next page »