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と空文字('')を区別するらしい。例を追って検証してみる。
環境
- SQL Server 2005
検証
以下のテーブル「猫マスタ」があったとする。
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 | ごん |
ロックヒントを使用する
Oracleの「SELECT 〜 FOR UPDATE」みたいなことがSQL Serverで出来ないかなーと思い調べていたらあたったのでメモ。
環境
- SQL Server 2005
ロックヒント
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)へ接続してソース管理する手順。
手順
- サーバ機にVSSをインストールする
- サーバ機でVSSデータベースを作成する
- サーバ機でVSSユーザを作成する
- サーバ機で共有アクセス許可設定を行う
- クライアント機にVSSをインストールする
- クライアント機でVisual Studioを起動し、接続確認する
サーバ機にVSSをインストールする
- Visual SourceSafe CDを挿入し、setup.exeをクリックする
- セットアップウィザードに従い、「OK」で進む
- インストールの種類を選択する画面では「カスタムインストール」を選択する
- 「管理ツール」のみチェック。
※他コンポーネントもインストールしても問題はない
サーバ機でVSSデータベースを作成する
ここでは新規作成の方法を説明する。既存データベースを再利用する場合は、2.でデータベースフォルダを選択する。
【Visual SourceSafe アドミニストレータの場合】
1. 「ファイル」→「新しいデータベース」
【Visual SourceSafe エクスプローラの場合】
- 「ファイル」→「データベースを開く」→「追加」
- データベースの選択画面では「新しいデータベースを作成する」を選択する
- 新しいデータベースの場所入力画面で、データベースフォルダを選択(または新規作成)する
- 「データベース接続名」を入力する
- 作業スタイル選択画面で、「ロック-変更-ロック解除」と「コピー-変更-マージ」の 2 種類の作業スタイルのうちどちらかを選択する。(作成後に変更可)
※「ロック」は旧バージョンのVSSと同様、「コピー」はいわゆるCVSスタイル - 設定内容を確認し「完了」を押す
データベースフォルダ下にSrcsafe.iniファイルが生成される
サーバ機でVSSユーザを作成する
作成したデータベースにクライアント機から接続するためには、「Windows認証」「VSS認証」のダブル認証をクリアすることが必要となる。まずはVSSユーザを作成する。
- Visual SourceSafe アドミニストレータを起動する
- 「ユーザー」→「ユーザの追加」
- 「ユーザー名」「SourceSafeパスワード」を入力する
- 「OK」
サーバ機で共有アクセス許可設定を行う 〜ユーザー作成
Windows認証用のユーザー、グループを作成し、データベースフォルダのアクセス権限設定を行う。権限設定はフルコントロールにしているが、管理者とユーザーを明確に分けるなら、こちらを参照のこと。
サーバ機で共有アクセス許可設定を行う 〜アクセス許可設定
- データベースフォルダのアクセス権限を設定する。エクスプローラでデータベースフォルダを右クリック→「プロパティ」
- 「共有」タブを開く
- 「このフォルダを共有する」をチェックする
- 「アクセス許可」ボタンを押し「グループ名またはユーザー名」画面を開く。
- 「Everyone グループ」を選択し、削除する。
- 上記で設定したVSS接続用グループ(例:vssUsersGroup)を登録する
- 権限の種類をフルコントロールにする
- 続けてリモートアクセス権限を設定する。「セキュリティ」タブを開く
- 上記で設定したVSS接続用グループ(例:vssUsersGroup)を登録する
- 権限の種類をフルコントロールにする
読み取り専用ユーザーであっても、このフォルダ以下にログファイルを作成するので、権限が必要。
クライアント機にVSSをインストールする
VSS6.0では、クライアント機のインストーラはVSSをインストールしたフォルダ内のEXEだった。VSS2005では、サーバ機とクライアント機で同じCD-ROMを使用する。
- Visual SourceSafe CDを挿入し、setup.exeをクリックする
- セットアップウィザードに従い、「OK」で進む
- インストールの種類を選択する画面では「カスタムインストール」を選択する
- 「Visual SourceSafe」のみチェック。
クライアント機でVisual Studioを起動し、接続確認する
- VSSに追加したいプロジェクトを開く
- クライアント機へのインスールが完了すると「ファイル」→「ソース管理」が表示される
- 「ソース管理」→「ソース管理にプロジェクトを追加」
- VSSログイン画面で、「ユーザー名」「SourceSafe パスワード」を入力する。
- データベースを選択する「参照」ボタンを押下する
- データベースを開く画面で、「追加」ボタンを押し、データベースの追加ウィザードを起動する
- データベースの選択画面では「既存のデータベースを作成する」を選択する
- 共有の場所画面で、場所を入力する
例) \\192.168.0.55\VSS_OJK - データベースの接続名を入力する。ただのメモなのでなんでもOK
- 「完了」
- 「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のバージョンを確認する方法。
- 次の場所にある GAC(Global Assembly Cache)に移動します。
C:\WINNT\assembly
または
C:\Windows\assembly
おまけ
バンドル版でない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)
- Windows 98 SE(機能に一部制限あり)
- Windows ME(機能に一部制限あり)
- Windows NT
- Windows 2000
- Windows XP Professional
- Windows Server 2003
開発ツール
- Visual Studio .NET 2002
- Visual Studio .NET 2003
- IBM WebSphere
- BEA WebLogic 対応
Crystal Reports 10
対応OS(Windows)
- Windows NT
- Windows 2000
- Windows XP Professional
- Windows Server 2003
開発ツール
- Visual Studio .NET
- Visual C++ 6.0
- Visual Basic 6.0
- Borland C# Builder
Crystal Reports XI
対応OS(Windows)
- Windows 2000
- Windows XP Professional
- Windows Server 2003(Crystal Reports Serverのみ?)
- Windows Vista(Crystal Reports XI R2以降)
開発ツール
- Visual Studio .NET 2002
- Visual Studio .NET 2003
- Visual C++ 6.0
- Visual Basic 6.0
.NET Framework
- 1.0
- 1.1
Crystal Reports 2008
対応OS(Windows)
- Windows XP Professional
- Windows Server 2003
- Windows Vista
開発ツール
- Visual Studio .NET 2003
- Visual Studio 2005
- Visual Studio 2008
.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)を対象に開発されたアプリケーションを実行することができる。
参考
より細かい要件を調べたい場合は、以下URL参照のこと。