2013年7月28日日曜日

PHP、継承されたメソッドが呼ばれる子クラス

Child class to which the method of PHP, inherited is called.

デバッグするとき、継承されたメソッドがどの子から呼ばれているか調べたいときがあります。
タイミングとかいろいろと。
子クラスの継承メソッド呼んでるところをチェックするよりも、
親クラスのメソッドで、

get_class($this)

とすると子クラス名がわかるよ。

継承したメソッドを読んでいる小クラスのメソッド名がわかればもっといいですね。

2013年7月25日木曜日

cakephp と MySQL の tinyint(1)

MySQL の tinyint(1) にデータを登録するとき、
$model->save() すると、0 以外は 1 で登録される。

データ読み込みのテストで、直接 2 をセットし、findすると当該フィールド値が 1 となっている。

CakePHPの仕様とのこと。
以前にもハマって思い出したので備忘録として。

2013年7月4日木曜日

VistaのODBC接続設定

ODBC connection settings for Vista

WindowsVistaです。えぇ。
コントロールパネルにODBC接続の設定が見つかりません><

スタートボタンを押下し、「検索の開始」というところに"ODBC"と入力します。
すると、なにやらODBC関連のプログラムが表示されます。


 データソース(ODBC)を選択します。
見慣れたダイアログが表示されます。


「追加」ボタンを押下してどんどん進めていきます。MySQLのODBCが登録済みですね。



混合認証です。




完了しました。


「データソースのテスト」で接続確認をおこないます。
無事に完了しました^^


「SQL Server Native Client 100」が追加されました。


この「ODBCデータソースアドミニストレータ」を見つけるのが一番時間がかかりました。



SQL Server2008の型変更

前回のエントリー関連です。

前回、SQL Server 2000 での型変更は無事できました。
しかし、検証できる環境が欲しいのでSQL Server 2008 のExpress版をセットアップし、そこでフロントエンドのデバッグをしたいと思います。

SQL Server 2008のインストールは
http://awoni.net/fc/vista-sql-server-settings/
を参考にしました。

変換したデータのバックアップが今手元にないので変換前のものを利用します。
SQL Server2008にアタッチします。OK!
SQL Server Management Studio でテーブルのデザインを開き、型を変更します。
エラーがでます。ここは想定内。

テーブル 'xxxxx'
- テーブルを修正できません。
テーブル 'dbo.xxxxx' を 削除 できません。レプリケーションに使用されています。
そこで、sp_removedbreplication を実行します。
メッセージは、正常に終了とでます。

再度、テーブルのデザインを開き、型を変更します。
また同じエラー!なぜ???想定外です。

SQL Server2008 の場合、レプリケーションがあっても ALTER文で変更できるということですので

alter table [対象テーブル名] alter column [対象フィールド名] int;
を実行します。OK!
フィールドの型変更はできましたが、ゴミ?となっていると思われるレプリケーションの削除ができていないようです。
今回の目的は、フィールドの型変更なのでとりあえずこのままにしておきます。