SQL Server Tips データ型 Timestampとは
VB.NET Tips インストーラ作成でアップデートインストールを行う為の設定
Visual Basic 2008で作成したソフトの配布で、インストーラを作成するのですが、アップデートが正常に行われるのかは重要ですね。
今回のWindowsインストーラ作成での、アップデート機能要項
- アップデートパッチは使用しない。
- インストールするソフトより、新バージョンのソフトがすでにインストールされているときは、インストール不可とする。
- 旧バージョンがインストールされているときは、一旦、削除して新バージョンをインストールする。
- 旧バージョンで使用していた、設定ファイルは上書きしないで引き継げる
以上のアップデート機能を備えたWindowsインストーラを作成したいと思います。
VB.NET Tips FlexGrid.NETにBindしたDataTableの任意行にDataRowを追加
FlexGrid.NETにDataBindされたDataTable内の任意行にDataRow(新規行)を追加する際、
「同時実行違反:UpdateCommand によって、処理予定の1レコードのうち0件が処理されました。」
このエラーが出て、新規行を追加できませんでした。
同時実行違反エラーというのが、DataAdapterに設定したUpdateCommandのWHERE句に指定した値で行が参照できないときなどに出力されるエラーです。
このときのコードが下記のものです。
VB.NET Tips コードエディタでカット&ペーストの便利な機能
VB.NETでプログラミングするとき、必須なのがコードエディタですね。
一般的なテキストエディタでテキストを一行コピーするとき、行を選択して、コピーCTRL+Cで行います。
ですが、VB.NETのコードエディタでは、カーソルがある行で、コピーCTRL+Cを行うだけで、一行コピーが可能です。行選択をしなくっていいってのが、とてつもなく便利です。
同じように、ペーストCTRL+V、切り取りCTRL+Xも行に、カーソルがありさえすれば、機能してくれます。
VB.NET Tips DataSetに追加したDataTableを解放
VB.NETでDataSetにDataTableを追加して、コントロールのDataSourceに登録して表示。
この処理を行った後、内容をすべてリロードするときにDataSetに登録したDataTableにそのままリロードをかけ、上書きすると処理速度がぐっと落ちます。
この際、DataSet.Tables プロパティを使用して、DataSet内に該当テーブルが存在するか確認し、DataSet内の該当DataTableをクリアーしてから再登録すると速度も落ちずスムーズに登録できます。
MSDN .NET Framework クラス ライブラリ DataSet.Tables プロパティ
続きを読む…
SQL Server Compact 3.5のSqlCeDataReaderをリードすると異常に遅い…
SQL Server Compact 3.5のSqlCeDataReaderを使用して、”While”ステートメントでループ処理を行い、データをリード。
SQL Server 2008 ExpressではSqlDataReaderを使用して、同様の処理を行えますが処理時間が異常に違います。
なにか、設定が必要なのか?といっても、SqlCeDataReaderにはSeekぐらいしか見あたらないし……
SQL Server Compact 3.5ではSQL文は1文づつしか発行できません。
SQL Server 2008 Expressなどでは、SQL文をまとめて発行できます。
例えば下記のような文です。
コマンドラインで操作するときのように”;”でSQL文を締めて発行すれば受け付けてもらえます。
DELETE from hoge WHERE hoge_id = 1; DELETE from hoge WHERE hoge_id = 2; DELETE from hoge WHERE hoge_id = 3;
しかし、SQL Server Compact 3.5ではこれは受け付けてもらえませんん。
仕様のようです、あきらめて一文づつ発行するしかないようです。
SQL Server 2008でdatetime型の項目からWhere句で該当日付の範囲データ抽出
SQL Server 2008から、Date型、Time型が追加となりましたね。
SQL Server 2005までは、Datetime型しかなく「日付のみ保持したいのに…」とか、「時刻のみ保持したい…」という場合も、datetime型で代用していました。
ですが、日時をまとめて保持したい場合は、datetime型を利用します。
たとえば、 ‘2009/01/01’の値が入っている該当項目を抽出したいとき、下記のように問い合わせても抽出できません。
比較対象が、datetime型なので日付ではないからです。
SQL Server Compact 3.5 でIDENTITY値を再設定するには?
SQL Server 2008 Expressなどの、Transact-SQLでは、SQL Server のデータベース コンソール コマンドとして機能するDBCCステートメントが用意されていて、この機能を使用すれば、IDENTITY値の再設定が可能でした。
しかし、SQL Server Compact 3.5 ではDBCCはサポートされていません。
テーブルを一旦、空にして、IDENTITY値を初期値に戻したい時などに必要でした。