WEB業界ろくろ回しすぎワロタ言われると確かにそうだわww何であんな感じにするんだろね。いうわけで、おやすみ。某社のLinux版ODBCドライバが不具合だらけな件うちの会社の若い衆が、ただでさえ不具合続出で新製品発表時に『んなもんどうでもいいから不具合はよ直せボケ』と突っ込まれている某社のデータベースをデータソースにしたレポーティングシステムを作っており、やっと来週に納品!というところにこぎつけた。このデータベース、出た当初はボロクソ言われてたものの、検索速度だけは速くて組み込み機用のカスタマイズもやれてたのである方面ではだいぶ使われている。ごり押しもあるんだけど。このごろは先にも書いた通り、ろくでもない不具合を作りこんでくれてて、メンテナンスツールを起動したら最後回復不能!とかドンだけ罠を仕掛けてるんだ、という有様。現場の経験浅いSEさんが命削りながら対処している、そんな状態。件のシステムシステムの発注をかけてきたのがそのデータベースを作ってる会社の別事業所で、公共関係の受注を取っている部署。そこの課長さん達も『それを使うと危険が危ない!』って位リスクが高まる事を理解していた。採用なんかしたくない。OracleやDB2の方がずっと安心。...そしてこのデータベースを組み込むのが絶対条件になってしまったのでした。今回のシステムはそのデータベースをサポートしていないため、今時なぁ...とは思いつつもODBCを経由したアクセスを行うことになった。...そしてWindowsを使うのかと思いきや、変なところでケチったためLinuxをサーバとして使うことになり、あわててLinux版ODBCドライバを取り寄せることになったのでした。どれだけMな皆さんなのよwま、悪い予想ほど当たるレポーティングツールはUnicodeを前提としており、データソースはSJIS。Unicodeの変換が必要になる。このODBCドライバはきちんとサポートしているとの事でした...が。経つと、テストデータのうちいくつかを使うと、レポート表示できず異常終了する事象に遭遇。ローマ数字や丸囲み文字で発生すると聞いたら慣れた人はピンと来るかもしれない。0203の範囲での変換しかできないことが発覚したのでした。開発元、問題なく変換できるといってたのに、それを撤回してきました。次が文字関数の振る舞い。Lower('ABCD')の結果は'abcd'になります。ところで、Lower('全然')の結果が予想できますでしょうか。...ええ、'甦甞'になります(^^;マルチバイト文字が入っていても関係なく、1バイト毎に変換をかけていくようです。Lower(M'全然')とする必要がありますが、おそらくこれは過去のアプリケーションとの互換のためにこうするしかなかったのかなと思います。VARCHARじゃなくてNVARCHARとか使え、って言ってたんですよ。ちなみにNVARCHARは当時で言うところの2バイト文字しか入らない型です。あ、これはODBCのせいじゃないやwそして、金曜日があと2時間で終わるかというころに発覚したもの。一部嘘を混ぜ込んで書いてあるのでその旨ご承知置きください。ドライバが駄目駄目なのは真実です。127.0.0.1ページ用ツール文書の先頭へ。