アーカイブ
-
ソースネクストの罠
筆王ZEROを発売当時に買って、(アップデートが無料だということで)オンラインによるプログラムのアップデートをやってみた。
強制終了で、起動しない!!!!!!!!!!!!!!!!!!!!
しかも何度も、アンインストールしてリトライした。。。
orz…
ぐぐってみたら、同じようなことで山ほど悩んでるひとがいた。。。
しかも、サポートに電話しても出ないってさ。
かなり、むかつく。
ある意味素材だけ、無料にしてくれ。
アップデートしてデグレードする、というか起動しなくなるソフトを提供する、ソースネクストってどうなの?
ある意味詐欺じゃねーか。それって。
安いということには、必ず理由があるのだね。
もう二度とここからは買わねーよ。
2010年 4月 15日 | Filed under 私事タグ: ソースネクスト -
[SQLServer]照合順序について
いつの間にか、半角・全角の違いやひらがな・カタカナ間の壁を乗り越えて検索できるように、初期設定だとなっちゃうのですね(汗
ネタ元は下記のサイトです。
河端善博 ログ
(↑MS系の情報を仕入れたいときに、ちょくちょくお世話になっています。)char 型、varchar 型、text 型、nchar 型、nvarchar 型、および ntext 型のデータのデータベース照合順序は、テーブルの列ごとに異なる照合順序を指定することができます。
CI 大文字、小文字を区別しない。全角アルファベットの大文字、小文字も区別しない 例: 「A」 と 「a」 を同一視する CS 大文字、小文字を区別する。全角アルファベットの大文字、小文字も区別する 例: 「A」 と 「a」 を区別する
AI アクセント、濁音、破裂音を区別しない。 半角カナの濁音、破裂音も区別しない 例: 「ハ」、「バ」、「パ」を区別しない AS アクセント、濁音、破裂音を区別する。 例: 「ハ」、「バ」、「パ」を区別する
KS ひらがなとカタカナを区別する。半角でも区別する KS に対して、KI という指定はない 例: 「は」と「ハ」を区別する WS 文字幅を区別する。つまり全角、半角を区別する。 WS に対して、WI という指定はない 例: 「a」と「a」を区別する BIN バイナリで比較する。つまりすべて区別する。 指定書式 書式: Japanese_BIN 書式: Japanese_(CI | CS)_(AI | AS)[(_KS | _WS | _KS_WS)]
[例]
--# バイナリ比較 Japanese_BIN --# 大文字、小文字は区別なし / アクセント、濁音、破裂音を区別 / ひらがなとカタカナを区別 Japanese_CI_AS_KS
ちなみに、変更の仕方は下記をサンプルに。
CREATE TABLE MyTable (PrimaryKey int PRIMARY KEY, CharCol varchar(10) COLLATE French_CI_AS NOT NULL ) GO ALTER TABLE MyTable ALTER COLUMN CharCol varchar(10)COLLATE Latin1_General_CI_AS NOT NULL GO2010年 4月 14日 | Filed under SQLServerタグ: SQLServer -
XML の CDATA
XMLで、「タグが含まれる文字列」など、HTMLエンティティが含まれる文字列を定義する場合に大活躍するのが、CDATA。
「何それ?」って方で興味のある方は下記を見てください。
その中では、エスケープがまったく不要だと思いがちだけど、どうやら違うみたい。
詳しく解説されているページを見つけたので、紹介しておきます。
XML の CDATA 中では ]]> のエスケープが必要。
要は、CDATAの終端はちゃんとエスケープしとかないと、うまくパースしてくれないとのこと。
XHTML内でJAVAスクリプトを書いてるサイトを見ると、結構CDATAが使われてますよね。
当たり前って言えばそれまでなんだけど。シンプルな規約だからこそ、引っかからないようにしないと。。。
2010年 4月 10日 | Filed under お仕事 -
[SQLServer]カーソル サンプル
PostgreSQLに引き続き、あまりにもよく使用するので、テンプレート化してみた。
比較してみると、カーソル処理に関してはPostgreSQLのほうが楽チンかも。--#------------------------------------------------------------------- --# 使用変数の定義 --#------------------------------------------------------------------- DECLARE --# カーソル変数 @CursorTargetData CURSOR --# 以下、フェッチした内容を格納する為の変数 , @wCurColumn1 int -- カーソルの1番目の列 , @wCurColumn2 int -- カーソルの2番目の列 ; --#------------------------------------------------------------------- --# カーソル定義を行い、メモリに読み込む --#------------------------------------------------------------------- SET @CursorTargetData = CURSOR FOR --#--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*-- --# 以下に、読み込み対象となるSELECT文を定義(ORDER BY句は必須) --# <Todo> SELECT TableA.Column1 , TableA.Column2 FROM TableA ORDER BY TableA.Column1 --# </Todo> --#--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*-- ; --#------------------------------------------------------------------- --# カーソルオープン --#------------------------------------------------------------------- OPEN @CursorTargetData; --#------------------------------------------------------------------- --# 現在のカーソルをフェッチ --#------------------------------------------------------------------- FETCH NEXT FROM @CursorTargetData INTO --#--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*-- --# 以下に、フェッチしたカーソルデータを格納する変数を順序に合わせて定義 --# <Todo> @wCurColumn1 , @wCurColumn2 --# </Todo> --#--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*-- ; --#------------------------------------------------------------------- --# 以下、カーソルフェッチループ --#------------------------------------------------------------------- WHILE (@@FETCH_STATUS = 0) BEGIN --#------------------------------------------------------------------- --# 次のカーソルへ移動 --#------------------------------------------------------------------- FETCH NEXT FROM @CursorTargetData INTO --#--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*-- --# 以下に、フェッチしたカーソルデータを格納する変数を順序に合わせて定義 --# <Todo> @wCurColumn1 , @wCurColumn2 --# </Todo> --#--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*-- ; END; --#------------------------------------------------------------------- --# カーソルクローズ --#------------------------------------------------------------------- CLOSE @CursorTargetData; --#------------------------------------------------------------------- --# カーソルをメモリより解放 --#------------------------------------------------------------------- DEALLOCATE @CursorTargetData;2010年 4月 8日 | Filed under SQLServer -
XML-RPC
いまさらながら、XML-RPCについてのメモ。
「RPC」とは、正しいかはわかりませんが、「Remote Procuder Call」の略。
つまり、Webサーバ間でデータをやり取りする仕様のこと。
サーバとクライアントの双方の立場があり、クライアントからサーバにメッセージ(プロシージャのキック)を送信し、
サーバは、そのメッセージに応えて、何かをするってこと。もう少し具体的にいうと、HTTPプロトコル上でやりとりされ、
そのリクエストのヘッダーは勿論HTTPプロトコルで、リクエストのBodyがXML構造しているわけなんです。
また、その結果の応答内容もXML形式で返されるわけです。実際に実装するとめんどくさいと思われるかもしれないけど、
「プロシージャである」というところがこの仕様の大きな特徴で、
パラメタのデータ型を縛ることができるのが、メリット。
データ型は数はないけど、
スカラー値、数値、文字列、日付等のほか、複合的なレコード(ハッシュ配列)/リスト構造など、結構融通がきくようになってます。大掛かりなB2Bを前提としたシステムには、結構実装されていることが考えられるので、マスターしてて損はないかと。。。
すごく短くまとめられてるので、まず仕様をチェックしましょう。
XML-RPC 仕様書あとは、実装する言語に対応すればよいので、
XML-RPC-HOWTO
でも、ガイドライン的なことだけが載ってる気がするので、ここでキーワードだけ見つけて、ググることをオススメします。仕様さえ忠実に沿えばいいのだから、無理して不安定なライブラリ使うのなら、自力で創作してもいいかもと、PHPでは特に感じました。
2010年 4月 2日 | Filed under PHPタグ: XML-RPC