OutOfMemoryExceptionテスト

OutOfMemoryExceptionのテストを行うためわざと発生させるお手軽な方法。
Long型の配列を作成する。

Try
     Dim longs(100000000) As Long 'DEBUGコード
Catch ex As OutOfMemoryException
    MsgBox("メモリが不足しています。再起動してください。")
  System.GC.Collect()               'ガベージコレクションを明示的に発生
End Try

SQL ServerでのNULLと空文字の区別

SQL ServerではNULLと空文字('')を区別するらしい。例を追って検証してみる。

環境

検証

以下のテーブル「猫マスタ」があったとする。

ID 名前 カリカ
111 すだち シーバ
222 ちろこ フリスキー
333 ごん モンプチ

これをそれぞれNULLと空文字('')、半角スペース1桁で更新する。

UPDATE 猫マスタ SET カリカリ = NULL WHERE ID = 111
UPDATE 猫マスタ SET カリカリ = '' WHERE ID = 222
UPDATE 猫マスタ SET カリカリ = ' ' WHERE ID = 333
ID 名前 カリカ
111 すだち  
222 ちろこ  
333 ごん  



いずれも見た目はNULLのように見える。
しかし実際はNULLと空文字は内部で区別されている。

SELECT * FROM 猫マスタ WHERE カリカリ IS NULL
ID 名前 カリカ
111 すだち  
SELECT * FROM 猫マスタ WHERE カリカリ = ''
ID 名前 カリカ
222 ちろこ  



さらにスペース値に対するRTRIM,LTRIM関数は空文字になるので注意。

SELECT * FROM 猫マスタ WHERE RTRIM(カリカリ) IS NULL
ID 名前 カリカ
111 すだち  
SELECT * FROM 猫マスタ WHERE RTRIM(カリカリ) = ''
ID 名前 カリカ
222 ちろこ  
333 ごん  

補足

空文字('')はSPACE関数でも表現できる。

SELECT * FROM 猫マスタ WHERE カリカリ = SPACE(0)
ID 名前 カリカ
222 ちろこ  

ロックヒントを使用する

Oracleの「SELECT 〜 FOR UPDATE」みたいなことがSQL Serverで出来ないかなーと思い調べていたらあたったのでメモ。

環境

ロックヒント

SELECT * FROM [テーブル名] WITH (UPDLOCK) [WHERE 〜]

これでSELECT時に更新ロックを取得できる。他のセッションからロックを取得しようとすると待ち状態になる(普通のSELECTは出来るよ)。
待機しないで、すぐにエラーメッセージを返したい場合はOracleと同様に「NOWAIT」を追記する。

SELECT * FROM [テーブル名] WITH (UPDLOCK,NOWAIT) [WHERE 〜]

ロックの優先順位は、ロックヒント > トランザクション分離レベルなので、トランザクション分離レベルは変えたくないけれど、このSQLだけロックをかけたいなーというときに使おう。

引数

ロック種類
ロック種類 表記文字
ロックなし NOLOCK
更新ロック UPDLOCK
排他ロック XLOCK
ロック単位

ロック種類とあわせて使う。(TABLOCKX以外)

ロック単位 表記文字
テーブル単位 TABLOCK
テーブル単位で排他ロック TABLOCKX
ページ単位 PAGLOCK
行単位 ROWLOCK
相当するトランザクション分離レベル

ヒントの中には、トランザクション分離レベルと同等のロックモードを設定するものがある。
トランザクション分離レベルとヒントの組み合わせには色々なパターンがある(このレベルだとこのヒントは無効、とか)ので詳細は参考URLを参照のこと。

トランザクション分離レベル 表記文字
READUNCOMMITTED NOLOCK
READUNCOMMITTED READUNCOMMITTED
READCOMMITTED READCOMMITTED ※1
READCOMMITTED READCOMMITTEDLOCK
REPEATABLEREAD REPEATABLEREAD
SERIALIZABLE HOLDLOCK
SERIALIZABLE SERIALIZABLE

※1:非推奨。将来のSQL Serverでは実装されないかも。

Visual SourceSafe 設定手順

Visual Studio からVisual SourceSafe(以下VSS)へ接続してソース管理する手順。

環境

今回はLANで接続する

手順

  1. サーバ機にVSSをインストールする
  2. サーバ機でVSSデータベースを作成する
  3. サーバ機でVSSユーザを作成する
  4. サーバ機で共有アクセス許可設定を行う
  5. クライアント機にVSSをインストールする
  6. クライアント機でVisual Studioを起動し、接続確認する

サーバ機にVSSをインストールする

  1. Visual SourceSafe CDを挿入し、setup.exeをクリックする
  2. セットアップウィザードに従い、「OK」で進む
  3. インストールの種類を選択する画面では「カスタムインストール」を選択する
  4. 「管理ツール」のみチェック。
    ※他コンポーネントもインストールしても問題はない

サーバ機でVSSデータベースを作成する

ここでは新規作成の方法を説明する。既存データベースを再利用する場合は、2.でデータベースフォルダを選択する。
Visual SourceSafe アドミニストレータの場合】
  1. 「ファイル」→「新しいデータベース」
Visual SourceSafe エクスプローラの場合】

  1. 「ファイル」→「データベースを開く」→「追加」
  2. データベースの選択画面では「新しいデータベースを作成する」を選択する
  3. 新しいデータベースの場所入力画面で、データベースフォルダを選択(または新規作成)する
  4. 「データベース接続名」を入力する
  5. 作業スタイル選択画面で、「ロック-変更-ロック解除」と「コピー-変更-マージ」の 2 種類の作業スタイルのうちどちらかを選択する。(作成後に変更可)
    ※「ロック」は旧バージョンのVSSと同様、「コピー」はいわゆるCVSスタイル
  6. 設定内容を確認し「完了」を押す

データベースフォルダ下にSrcsafe.iniファイルが生成される

サーバ機でVSSユーザを作成する

作成したデータベースにクライアント機から接続するためには、「Windows認証」「VSS認証」のダブル認証をクリアすることが必要となる。まずはVSSユーザを作成する。

  1. Visual SourceSafe アドミニストレータを起動する
  2. 「ユーザー」→「ユーザの追加」
  3. 「ユーザー名」「SourceSafeパスワード」を入力する
  4. 「OK」

サーバ機で共有アクセス許可設定を行う 〜ユーザー作成

Windows認証用のユーザー、グループを作成し、データベースフォルダのアクセス権限設定を行う。権限設定はフルコントロールにしているが、管理者とユーザーを明確に分けるなら、こちらを参照のこと。

  1. 「管理ツール」→「コンピュータの管理」で、コンピュータの管理画面を開く
  2. 「ローカルユーザーとグループ」→「ユーザー」
  3. リモート接続するユーザー名を登録する。
    例)vssUser01
    ※クライアント機のWindowsユーザー名と同一にしておくと、VSSログイン前にいちいちWindows認証を聞かれずに済む
  4. 「ローカルユーザーとグループ」→「グループ」
  5. VSS接続用のグループを登録する
    例)vssUsersGroup
  6. vssUsersGroupグループにvssUser01ユーザーを登録する

サーバ機で共有アクセス許可設定を行う 〜アクセス許可設定

  1. データベースフォルダのアクセス権限を設定する。エクスプローラでデータベースフォルダを右クリック→「プロパティ」
  2. 「共有」タブを開く
  3. 「このフォルダを共有する」をチェックする
  4. 「アクセス許可」ボタンを押し「グループ名またはユーザー名」画面を開く。
  5. 「Everyone グループ」を選択し、削除する。
  6. 上記で設定したVSS接続用グループ(例:vssUsersGroup)を登録する
  7. 権限の種類をフルコントロールにする
  8. 続けてリモートアクセス権限を設定する。「セキュリティ」タブを開く
  9. 上記で設定したVSS接続用グループ(例:vssUsersGroup)を登録する
  10. 権限の種類をフルコントロールにする
    読み取り専用ユーザーであっても、このフォルダ以下にログファイルを作成するので、権限が必要。

クライアント機にVSSをインストールする

VSS6.0では、クライアント機のインストーラはVSSをインストールしたフォルダ内のEXEだった。VSS2005では、サーバ機とクライアント機で同じCD-ROMを使用する。

  1. Visual SourceSafe CDを挿入し、setup.exeをクリックする
  2. セットアップウィザードに従い、「OK」で進む
  3. インストールの種類を選択する画面では「カスタムインストール」を選択する
  4. Visual SourceSafe」のみチェック。

クライアント機でVisual Studioを起動し、接続確認する

  1. VSSに追加したいプロジェクトを開く
  2. クライアント機へのインスールが完了すると「ファイル」→「ソース管理」が表示される
  3. 「ソース管理」→「ソース管理にプロジェクトを追加」
  4. VSSログイン画面で、「ユーザー名」「SourceSafe パスワード」を入力する。
  5. データベースを選択する「参照」ボタンを押下する
  6. データベースを開く画面で、「追加」ボタンを押し、データベースの追加ウィザードを起動する
  7. データベースの選択画面では「既存のデータベースを作成する」を選択する
  8. 共有の場所画面で、場所を入力する
    例) \\192.168.0.55\VSS_OJK
  9. データベースの接続名を入力する。ただのメモなのでなんでもOK
  10. 「完了」
  11. 「OK」

補足 ソース管理プロバイダの切り替え

VSS 6.0では、「ツール」→「オプション」に「ソース管理」項目があった。
VSS 2005では「すべての設定を表示」にチェックを入れないと表示されない。


「現在のソース管理プラグイン」で、なし、Microsoft Visual Sourcesafe(LAN接続)、Microsoft Visual Sourcesafe(Internet)に切り替えられる。

Crystal Reports for Visual Studio

バンドルCrystal Reports対応表

Visual Studioに同梱されているCrytal Reportsのバージョン。

Visual Studio Crystal Reports Crystal Reports
アセンブリバージョン
.NET 2002 Standard なし  
.NET 2002 Professional 以上 Crystal Reports for Visual Studio .NET 2002 9.1.3300
.NET 2003 Standard なし  
.NET 2003 Professional 以上 Crystal Reports for Visual Studio .NET 2003 9.1.5000
2005 Express Edition なし  
2005 Professional 以上 Crystal Reports for Visual Studio 2005 10.2.3600.0
2008 Professional Edition ※1 Crystal Reports for Visual Studio 2008 10.5.3700.0

※1 2008.08.15追記 VS2008PEを入手したのでインストールして確認。ver10.5か…微妙。

アセンブリバージョン確認方法

インストールされているCrystal Reportsのバージョンを確認する方法。

  1. 次の場所にある GAC(Global Assembly Cache)に移動します。

C:\WINNT\assembly

または

C:\Windows\assembly

  1. このアセンブリ フォルダで、名前が CrystalDecisions という文字列で始まるファイルを探します。
  2. CrystalDecisions.CrystalReports.Engine ファイルを探します。
  3. ウィンドウに表示されている[バージョン]列がアセンブリバージョンです。

おまけ

バンドル版でないCrystal Reportsのアセンブリバージョン

Crystal Reports Crystal Reports
アセンブリバージョン
Crystal Reports 9.2(メンテナンス リリース) 9.2.3300
Crystal Reports 10 10.0.3300.0
Crystal Reports 11 11.0.3300.0
Crystal Reports XI Release 2 11.5.3300.0
Crystal Reports 2008(.NET 1.1 Framework) 12.0.1100.0
Crystal Reports 2008(.NET 2.0 Framework) 12.0.2000.0

Crystal Reports 実行システム要件

Crystal Reports 9

対応OS(Windows
開発ツール

Crystal Reports 10

開発ツール

Crystal Reports XI

対応OS(Windows
.NET Framework
  • 1.0
  • 1.1

Crystal Reports 2008

.NET Framework

1.1用と2.0用でライブラリが分かれているので注意。

  • 1.1
  • 2.0
  • 3.0
  • 3.5

.NET Framework システム要件

.NET Frameworkのシステム要件。開発環境と実行環境で対応OSが異なるため注意する。

.NET Framework SDK 対応OS(Windows)

  98 ME NT 2000 XP 2003Server Vista
.NET Framework SDK 1.1      
.NET Framework SDK 2.0      
.NET Framework SDK 3.0        
.NET Framework SDK 3.5        

Visual Studio 対応OS(Windows)

  98 ME NT 2000 XP 2003Server Vista 2008Server
Visual Basic 6.0
VisualStudio .NET 2002
(Framework 1.0)
       
VisualStudio .NET 2003
(Framework 1.1)
         
VisualStudio
2005
(Framework 2.0,3.0)
      ※1 ※1
VisualStudio 2008
(Framework 2.0, 3.0, 3.5)
       

※1:Visual Studio 2005でFramework3.0を開発する、またはVistaで開発する場合には、いずれもService Pack 1 Update for Windows Vista が適用されている Visual Studio 2005 Service Pack 1 が必要。

実行環境 対応OS

  98 ME NT 2000 XP 2003Server Vista 2008Server
.NET Framework 1.1
.NET Framework 2.0  
.NET Framework 3.0        
.NET Framework 3.5        

注意点

  • Windows Vista には、.NET Framework 3.0 が含まれている。単体パッケージのインストールは必要ない。必要ないというか、インストールするとエラーになるらしい。.NET Framework 3.0 の単体パッケージは、Vista をサポートしていない。
  • Windows 2008 Serverには、.NET Framework 2.0.NET Framework 3.0が含まれている。Windows Server 2008 をアプリケーション サーバーとして構成すると、.NET Framework 3.0(SP1)に対する組み込みのサポートが有効になる。
  • .NET Framework 3.0 の環境では .NET Framework 2.0(SP1)を対象に開発されたアプリケーションを実行することができる。
  • .NET Framework 3.5 の環境では .NET Framework 3.0(SP1)および .NET Framework 2.0(SP1)を対象に開発されたアプリケーションを実行することができる。