S2Dao -> OLEDB -> SQL Serverで、IDENTITY操作にハマったのでメモ

.NETのQuillでのお話。S2Containerでも同じかな。
app.configのを記述するときに、

Provider=SQLOLEDB.1;Data Source=serverName;Initial Catalog=databaseName;User ID=userName;Password=userPassword;

と、Providerにバージョン番号を付けると、DB種類を認識できずにS2DaoがStandardDBとして扱ってしまう。
これは

Provider=SQLOLEDB;Data Source=serverName;Initial Catalog=databaseName;User ID=userName;Password=userPassword;

とプロバイダ識別名だけを記述すればOK。


DB種類が判別できない状態ではEntityのID属性が正しく働かない。
例えば、

<ID(IDType.IDENTITY)>  _
Public Property Id() As Integer
   Get
      Return _id
   End Get
   Set
      _id = value
   End Set
End Property

と書いてIDを自動発番に任せる。
ところがStandatdDBは当然ID属性をサポートしておらず、ほんとは"select @@identity"が必要なところでnullを返す。結果、Insert後のID取得処理で例外が発生する。


これで2時間もハマって悔しい!

OSX10.5 + iBook G4がネットワーク絡みでスリープしなかったのを直した件

非力なiBook G4がAppleTV2と組み合わせるとAirPlayでメディアサーバー化できることに気がついたので、時間指定のスリープできれば使い勝手が良い!ということで頑張って直した。


どれが有効だったかはよくわからないが、手順をメモ。

ファイル共有をOFFに。

たぶんこれが最大の原因。ふだんは必要がないのでOFFに。

PleaseSleep 2.0 を導入して設定し、そののち解除。

http://www.dragonone.com/products/macosx/pleasesleep/
PPCは最新版が使えないので、ページの下の方から2.0をダウンロードしてインストール。
一通り設定してきちんと動作することを確認したが、iTunesが動作中でも問答無用でスリープしてしまうので、自動起動設定を解除。

ローカルドメイン名の不一致を修正。

ルーターAirMac)のドメイン設定に適当な名前を付けていたのを、local と入力してMacの設定と合わせた。

Apple Remote Desktop Client 3.4 アップデートをインストール。

内部モジュールが修正されるとかされないとか。
Appleよりダウンロード&インストール。

以上にて一応解決。

設定した時間よりやや遅れるがきちんとスリープする。そしてiTunesのAirPlayでAppleTV2にストリームを送信していると動作を継続する。すばらしい。手持ちのDVDを全部リップして放り込めばプラズマテレビで見放題であるな。

G-SELECTION ∀ガンダム DVD-BOX 【初回限定生産商品】

G-SELECTION ∀ガンダム DVD-BOX 【初回限定生産商品】

とりあえずリップ済みのTV版∀ガンダムを転送しておこう。

VB.NETなど書いて餅代になるかしら

仕事が決まるまで、とアルバイト感覚で.NETなどに手を出してみた。どうも目的を達すれば勝手にコード書いていいみたいで精神的には楽チン。


本日はDataGridViewのComboBoxColumnで動的にリストを切り替えるのにはどうしたらよいのか、と丸一日悩んだ。
結局、

  1. DataGridViewComboBoxColumnから連なるユーティリティクラスを派生して、
  2. EdtingControl用のクラスのOnEnter/OnLeaveメソッドをオーバーライドしてこの間だけDataSourceを動的リスト用のDataViewに差し替えて、
  3. このメソッドからComboBoxColumnに付け加えたOnEnter/OnLeaveイベントを呼ぶようにして、
  4. FormでComboBoxColumnをDataGridViewに追加するときに、Columnにイベントハンドラを付け加えて、
  5. そのイベントハンドラでComboBoxEditngControlのDataSourceに設定しておいたDataViewのRowFilterを弄くる。

という面倒くさい解決しか思いつかんかった・・・ColumnがDataGridView内部でCloneされてて、イベントハンドラを一緒にコピーさせるためにリフレクションまで登場。「これコメントいっぱい付けとかないと意味不明」というコードになってがっくり。コーディングの感が鈍ったかなあ。

LionでOSX10.4から10.7までで動作するユニバーサルバイナリをビルドするためにXcode3をインストールする

手順メモ
via. http://serennz.sakura.ne.jp/sb/log/eid198.html
via. http://smartphone-zine.com/mobile/iphone/install-xcode3-lion.html

  1. Xcode 3.2.6 をインストール(ADCからダウンロード)
    • インストール時にパッケージアイコンをダブルクリックでは正常にインストールできない。そこで以下の手順を取る。
    • Terminal を起動して sudo mkdir /Xcode3 でインストール先を作成。
    • 続けて export COMMAND_LINE_INSTALL=1 を実行。
    • 続けて open "/Volumes/Xcode and iOS SDK/Xcode and iOS SDK.mpkg" としてインストーラを起動。
    • インストーラでインストール先を Xcode3 に変更し、Essentialsのみをインストール(System tools等はXcode4のものを使う)。10.4 SDK はインストールしない(というか出来なかったので後述手順を実施)
  2. Mac OS X 10.4 SDK をインストール
    • Terminal で open "/Volumes/Xcode and iOS SDK/Packages/MacOSX10.4.Universal.pkg" としてインストーラを起動。
    • /SDKs に MacOSX10.4u.sdk がインストールされるので、このフォルダを /Xcode3/SDKs/ に移動。

Mac OS X Lion 導入

ノートのほうにLionを導入。

  • アップデートは、ダウンロードに時間がかかるが簡単に終わった。
  • UI はすっきりして見やすくなった。正常進化。
  • SpacesがなくなってMission Controlに。微妙。慣れ?
  • 二本指スクロールの方向が逆転してiPhone/iPad準拠に。微妙。慣れ?
  • Homebrew と rvm で入れておいた Ruby 1.9.2 は正常に動作中の模様。

ぼちぼち使っていきましょう。

Padrino を触ってみる

Sinatra++ あるいは Rails--。ちょうどいい感じと思われるWebフレームワーク「Padrino」を触ってみた。


日本語サイトがあって嬉しい。http://jp.padrinorb.com/


GUIDEのチュートリアルでだいたい感じが分かる。Sinatraで「あーここ足りないけどドウシヨウ」という部分がうまく埋まっていて、Railsは高機能で情報も得やすいんだけどやっぱりデカイ、と感じる向きにはジャストフィット。


ひきつづき触ってみよう。