2011年4月25日月曜日

バッチで日付+時刻の入ったファイルを作成する(ログファイルで使用)

datetime.bat

このバッチを実行すると環境変数に日付・時刻が保存されます。

%yyyy% 年4桁

%yy% 年2桁

%mm% 月

%dd% 日

%hh% 時

%mi% 分

%ss% 秒

%sss% ミリ秒2桁

%datetime% 年4桁~ミリ秒2桁

@echo off
set date_tmp=%date:/=%
set time_tmp=%time: =0%
set yyyy=%date_tmp:~0,4%
set yy=%date_tmp:~2,2%
set mm=%date_tmp:~4,2%
set dd=%date_tmp:~6,2%
set hh=%time_tmp:~0,2%
set mi=%time_tmp:~3,2%
set ss=%time_tmp:~6,2%
set sss=%time_tmp:~9,2%
set datetime=%yyyy%%mm%%dd%%hh%%mi%%ss%%sss%
set time_tmp=
set date_tmp=

test.bat

datetime.bat の実行用サンプルです。

@echo off

setlocal

call datetime.bat

echo %datetime%
echo %yyyy%-%mm%-%dd% %hh%:%mi%:%ss%.%sss%
echo %date% %time%

endlocal

実行してみる。

>test.bat
2007112302443090
2007-11-23 02:44:30.90
2007/11/23 2:44:30.92

2011年4月20日水曜日

CommonLibrary.NET

CommonLibrary.NET
C#共通のライブラリー
元はJavaから派生している

http://commonlibrarynet.codeplex.com/

Windows7で3Gスイッチの方法

管理者権限でコマンドプロントから次のコマンドで設定

3Gの場合は
BCDEDIT /Set Increaseuserva 3072

解除は
BCDEDIT /deletevalue increaseuserva

2011年4月14日木曜日

SQL CASE文の書き方

WHENの後に評価させる式を書く

SELECT (CASE
WHEN expression1 = '0' OR expression2 = '0' THEN 'hoge'
WHEN expression1 = '1' OR expression2 = '1' THEN 'fuga'
ELSE 'piyo' END) AS fieldname
FROM tablename

C#のforeach文で、自分が何回目の繰り返しか知る方法

using System;
using System.Linq;

namespace CountForeach
{
class Program
{
static void Main(string[] args)
{
// テスト用配列
var array = new[] { "aaa", "bbb", "ccc" };

// Selectメソッドで値をインデックスのペアを作ってそれをforeachでまわす
foreach (var item in array.Select((v, i) => new { v, i }))
{
// 匿名型から値とインデックスを取り出して使える
Console.WriteLine("value = {0}, index = {1}", item.v, item.i);
}
}
}
}

LINQ to SQLのorderby

LINQでのorderbyの書き方

OrderedQueryable hireQuery =
from emp in db.Employees
orderby emp.HireDate
select emp;

EPPlus

ExcelPackageから派生したプロジェクト
http://epplus.codeplex.com/
こっちの方が開発は活発

ExcelPackage

今までExcel2007を扱う場合、CodeplexのexcelPackageを使用していました。
http://excelpackage.codeplex.com/

でも、複数シートのテンプレートを扱うと、saveメソットでエラー発生
解決方法は
http://excelpackage.codeplex.com/discussions/7005?ProjectName=excelpackage
562 of ExcelWorksheet.cs from:
XmlNode pageSetup = _worksheetXml.SelectSingleNode("//d:pageSetup", NameSpaceManager);

to:
XmlNode pageSetup = WorksheetXml.SelectSingleNode("//d:pageSetup", NameSpaceManager);

だそうで、ソースを修正する必要がある
修正したら、最新版をUPして欲しい

ExcelPackageから派生したプロジェクト
http://epplus.codeplex.com/
こっちの方が開発は活発

2011年4月12日火曜日

MS-SQL2005 DTS 単体実行はOKだが、SQL Agentにするとエラーになる

MS-SQL2005のDTSを単体テストでは、OK。
これをファイルベースで、MS-SQL2005のエージェント(Agent)で実行すると
パスワードの暗号化が解除出来ない為、エラーになる。

解決方法
http://support.microsoft.com/kb/918760/ja
1.パスワードを使用して暗号化するパッケージを変更します。
2.EncryptSensitiveWithUserKey に ProtectionLevel プロパティを変更するのに
オペレーティング システム (cmd Exec) SQL Server エージェント ジョブのステップで
Dtutil.exe ユーティリティを使用します。
 このプロセスは、パスワードを使用して、パッケージを re-encrypting し、
 パッケージを暗号化解除では。
パッケージの暗号化に使用されるユーザー キーは、SQL Server エージェント ジョブの
 ステップを 別のユーザーとして実行 ] 一覧で設定です。

Dtutil.exeを実行して暗号化を解除するそうです。

2011年4月6日水曜日

Delphi Fix

VCLのFixなど公開しているblog

http://andy.jgknet.de/blog/

MAGIC 論理値を数値にした時

MAGICで論理値をDBに格納する時は、数値型になる。
false:0
true:1

確認ver:UniPaas1.8
DB:MS-SQL2008R2