アーカイブ

  • ソースネクストの罠

    筆王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
    GO
    
    2010年 4月 14日 | Filed under SQLServer
    タグ:
  • XML の CDATA

    XMLで、「タグが含まれる文字列」など、HTMLエンティティが含まれる文字列を定義する場合に大活躍するのが、CDATA。

    「何それ?」って方で興味のある方は下記を見てください。

    XML用語事典 [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
    タグ:
Archive for 2010年 4月