2009年11月13日金曜日

ネストしたSQLコマンドを投げる場合

1個のConnectionで、DataReaderをClose()しないまま、複数のSelectを投げたりすると、
「There is already an open DataReader associated with this Command which must be closed first.」
と怒られたりする時がある。

基本、DataReaderをClose()してから次のデータ(詳細データ)をひっぱたりするが、
どうしても1対多のデータを1行に出したかったりなんだりで、ネストしたいときがある。

そぎゃん時は、データベースへの接続文字列に、以下情報を追加する。
SQL Server 2005以降:MultipleActiveResultSets=True;
PostgresSQL:Preload Reader = true

つまり接続文字列はこんな感じになるんだね。(ex.ぽすぐれ)
「Server=127.0.0.1; Port=5432; Database=hoge; User Id=hoge; Password=hogehoge; Preload Reader=true;」

以下、情報サイト
SQLServer : http://social.msdn.microsoft.com/forums/en-US/adodotnetdataproviders/thread/6dc3ba69-089a-4278-97f6-e682619d5980/
PostgresSQL:http://pgfoundry.org/forum/forum.php?thread_id=2274&forum_id=518

2009年9月8日火曜日

VS2008でブレークポイントが無効になる

VS2005では発生したこと無いけど(あちしはね)、VS2008になって、突然ブレークポイントが無効になる時がある。
同じソースでもなったりならなかったり突然止まるようになったりもー超気分屋な感じで振り回される。

ブレークポイントの三角!の上にマウスを乗せると、こんなメッセージが表示される。
「ブレークポイントは現在の設定ではヒットしません。ソースコードが元のバージョンと異なります。」


えぇ!?(;゚Д゚)
クリーンしましたけどー!!!!!!
リビルドもしましたけどー!!!!!!
超同じだっつーの…。
大体、何「元のバージョン」って…どれのことなの。何!?いつの誰のことよぅ!
ってね。

一時対応として、[ツール]->[オプション]->[デバッグ]で以下設定をOFFにします。

そうすると、普通に止まります。。。

overrideとか色々ごりごり使うといけないんだろうか…。
「どこ!?ここどこ!?あちしどこ!?ここだれ!?」みたいな感じ?

でもこれって根本的解決にはなってないんだよねぇ…。

2009年6月10日水曜日

.NetじゃないASPのデバッグ方法

【用意するモノ】
●Visual Studio 2008(2005でもいいと思う)

【デバッグ方法】
1.ブラウザでデバッグしたいASPサイトを開きます。(トップとかだといいと思う)
2.VS2008のツールメニューから「プロセスにアタッチ」を選択。

3.画面下の「すべてのユーザからのプロセスを表示する」をONにする。
4.選択可能なプロセスから
 ・IIS5系の場合 :dllhost.exe(型:スクリプト、T-SQL,x86のやつ)
 ・IIS6/7系の場合:w3wp.exe(型:スクリプト、T-SQL,x86のやつ)
を選択し、アタッチボタンをクリック。
するとソリューションエクスプローラにぶわぁ~っとaspのリスト(Link/Impoertしているファイルのみ)が出るので、デバッグしたいソースにブレークポイント置けばいーじゃない!

※dllhost.exeが無くなった、又は「型:スクリプト~」のがプロセスから消えた場合、IEを再起動したりIISを再起動したりすると復活する。

2009年4月24日金曜日

Grapcity Component One LC.exeのエラー

Grapecityの.Net用パッケージの話。(C#)
旧ージョンのComponentOne Studio 使用のプロジェクトを新しいバージョンのComponentOneをインストールして参照設定してビルドしたりすると、以下のようなエラーが出る場合がある。

「"LC.exe"はコード -1 を伴って終了しました。」

この場合は、
Properties\licenses.licx内の使用していないライセンス情報を削除してからリビルドかけると、直ったりする。

Grapecityの情報サイト:
http://www.grapecity.com/tools/support/technical/knowledge_detail.asp?id=32146

2009年4月22日水曜日

Oooのマクロの記録(Calc Macro Recorder)

OpenOffice.orgでマクロを記録すると、dispacherを使用したマクロが記録される。
これも使えない訳じゃないけど、もっと簡単な方法あるんじゃね?
ってことで色々方法を探していたら、以下サイトに「Calc Macro Recorder」なるマクロの話を見つけた。
http://oooug.jp/compati/basic/pukiwiki.php?%B5%AD%CF%BF%A5%DE%A5%AF%A5%ED

作者のページはここ:http://www.ooomacros.org/user.php#104617
DLはこっから:http://sourceforge.net/project/showfiles.php?group_id=87718&package_id=104617

【設定方法】
1.ツール->マクロ->マクロの管理->OpenOffice.org Basic
2.管理ボタンクリック
3.ライブラリタブクリック
4.場所コンボから「マイマクロ&ダイアログ」を選択し、インポートボタンクリック
5.解凍したファイルを選択し、OKクリック
6.Standardのチェックを外し、OKクリック

ツールメニューとかに登録するとなお便利。
マクロは[マイマクロ&ダイアログ].Standardの中に保存される。
マクロエディタを開いても保存されてないっぽい時は、マクロエディタを一度終了してからやってみて。

でも保存されないのもありますわ。(中身無しの関数だけある感じ)

標準ではこんな感じ++++++++++++++++++++++++++++++++++++++++++++++++++++
REM ***** BASIC *****
sub Main
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(2) as new com.sun.star.beans.PropertyValue
args1(0).Name = "DocName"
args1(0).Value = "200901"
args1(1).Name = "Index"
args1(1).Value = 32767
args1(2).Name = "Copy"
args1(2).Value = true

dispatcher.executeDispatch(document, ".uno:Move", "", 0, args1())
end sub
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Calc Macro Recorder を使うと(背景色変えるだけ)++++++++++++++++++++++++++++++
Sub Macro1()
' date: 2009/04/22 17:28:40

oCellRange = ThisComponent.Sheets.MonthlyTemplate.getCellRangeByName("E6")
ThisComponent.CurrentController.Select(oCellRange)

ThisComponent.CurrentSelection.CellBackColor = 15132415

End Sub
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

でもこれ…どやって消したらいいの?(;゚Д゚)

2009年4月16日木曜日

C# ListとDictionaryはどっちが速いか

用途は違うが、時々、あれ?どっち使おうと悩むときがある。

データ量が多い(うん万件とかね)場合は、Dictionary.
keyが必要な時は、もちろんDictionary.

数千件な場合は、Listを使ってごりごりforeachで回した方が速いみたい。

2009年2月23日月曜日

VirtualPC2007 WindowsXP 画面色が4ビット

VirtualPC2007 にWindowsXPをインストールし、追加機能をインストールしたら、画面の色が4ビットになってしまった。
はぁ何で?って色々調べたら、WinXPのSP2 or SP3をあててからなんですって。
SP2をあててから追加機能をインストールしたところ、正常になりました。
きっと超基本なんだな…。