C# の yield return の挙動
kawa.xxx
kawalog
ImagineCup2011日本大会への出場に向けて日々活動していて春休みなんかない状態です^^;
その開発の中で一番はまったことをメモしておきます.
環境
データベースに読み書きするプログラムを書いていたんですが,次のようなエラーが
Error A native exception has occurred in XXX.exe. Select Quit and then restart this program, or select Details for more information. Error ExceptionCode: 0xc0000005 ExceptionAddress: 0x00cf1e20 Reading: 0x01f57e7e at NativeMethods.GetKeyInfo(IntPtr pTx, String pwszBaseTable, IntPtr prgDbKeyInfo, Int32 cDbKeyInfo, IntPtr pError) at SqlCeDataReader.FillMetaData(SqlCeCommand command) at SqlCeCommand.InitializeDataReader(SqlCeDataReader reader, Int32 resultType) at SqlCeCommand.ExecuteCommand(CommandBehavior behavior, String method, ResultSetOptions options) at SqlCeCommand.ExecuteReader(CommandBehavior behavior) at ApplicationThreadContext._InternalContextMessages(WM wm, Int32 wParam, Int32 lParam) at EVL.EnterMainLoop(IntPtr hwnMain) at Application.Run(Form fm) at Program.Main()
原因は英語文献を読んでいるとどうやらSQLServerのバグらしく,MSから最新版SP2をダウンロードしてこいとのこと…しかし,開発マシンにもCompact7にも最新版を当ててもなおらずしばらく途方に暮れていました.
試しにということで,必要なSQL関連のDLLを全部コンパイル時にexeのあるディレクトリにコピーするよう設定して動作させたら無事動いてくれるようになりました.
とほほ・・・