2011年4月14日木曜日

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