2009年3月8日日曜日

ExtJs-31 DataTierGenerator(DBの照合順序)

で、いよいよ
DataTierGeneratorでじぇねレートしなおうそうと。。
するとだね。
---------------------------

---------------------------
equal to 操作の "Latin1_General_CI_AI" と "Japanese_CI_AS" 間での照合順序の競合を解決できません。
---------------------------
OK
---------------------------

なんて出るんです。。
なんのこっちゃと思い、Collationの確認するも、masterDBや自分の作ったDBも"Japanese_CI_AS"よ。
うーんと。。と、なるのですが、
テーブル情報を取得するSQL文の中で
INFORMATION_SCHEMA.TABLES

FN_LISTEXTENDEDPROPERTYで作成した拡張情報を
LEFT JOINしてる部分において(equal to)って言ってるからそう判断しただけですが
どうやらFN_LISTEXTENDEDPROPERTYのCollationがLatin1_General_CI_AIで作成されている?
ようで、
COLLATEでキャストしました。ら、うまくいった。

ちなみに確認用に抜粋してみてやったものはこちら。

select * from INFORMATION_SCHEMA.TABLES
LEFT JOIN ::FN_LISTEXTENDEDPROPERTY('ProgrammaticAlias', 'user', 'dbo', 'table', default, default, default) AS ExtendedProperty ON INFORMATION_SCHEMA.TABLES.TABLE_NAME = ExtendedProperty.objname COLLATE Japanese_CI_AS

「COLLATE Japanese_CI_AS」
これね。
ちなみに
ジェネレートする際のSQL文についても同様。に
「COLLATE Japanese_CI_AS」を。



#追記(ぱっと見わからなかったのでまよったため)
・ソリューション構成のSQLフォルダ内にある、
・テーブル情報を取得するSQLの末尾に
「△COLLATE△Japanese_CI_AS」を追記する。

0 件のコメント: