毎日にもっと楽~を! BLOG Tokyo

Search

Access Ranking

  1. 添付ファイルを一括保存する
  2. ジャークチキンの作り方
  3. アンケートフォームの作成
  4. このファイルを開けません..
  5. 複数のブックを一つにまとめる 1

2007年3月25日

洞爺湖マラソン 練習記録2

さすがに東京、段々暖かくなってきました。いつもどおりの服装でランニングに出かけると汗だくです。桜はさすがにまだ早いみたいだけど、この調子だと来週が見ごろなのかな。

コーヒーを飲むと体脂肪燃焼効率がよくなるらしいのだが、そもそもコーヒーを飲んでマッタリした後に1時間もランニング行く気が起こらない。

長い距離を走ると膝が痛くなるのだが、それを防ぐには地道な筋力トレーニングが必要らしく、そう簡単にフルマラソンのタイムが伸びるものではない。

洞爺湖マラソンはコースがフラットとして認定しているらしく、好タイムが期待できるのだが、制限時間が5時間とかなり厳しい目の設定になっている。前の日に飲みすぎるとリタイアかな。

3月25日 荒川河川敷(フラット) 晴れ 16度 1時間走(累計1時間) 約8キロ(累計16キロ)

2007年3月21日

洞爺湖マラソン 始動

5月20日の洞爺湖マラソン2007にエントリーした。洞爺湖は北海道にある温泉街で、小学校の修学旅行で確か行ったことがある。中学だったかもしれないが。小学校の頃見た、洞爺湖はとても大きな湖で、まさか、大人になって、そこを走って1周するなんて思いもしなかった。それに今回は地元ということもあって、沿道に知り合いがいるということが力となって後押ししてくれるかもしれない。ということでフルマラソン4レース目になるが、自己ベストを狙っていこうと思う。

狙うは、4時間20分。満足行く走りで、美味しいジンギスカンとビールで北海道を満喫したい。

3月21日 荒川河川敷(フラット) 晴れ 13度 1時間走(累計1時間) 約8キロ(累計8キロ)

もっと詳しく洞爺湖

手軽なSQLite

MySQLをバックアップ&リストアしようと思うとそこそこ面倒くさい。mysqldumpを使って、それから障害直前のリカバリまでしようとしようものなら、不慣れで頭がいたい。いやいや、そこまでしなくてもAccessのように使えるだけでいいんだけど。。。というケースもある。そういう時はこのSQLiteがいいじゃないでしょうか。(使ったことはないけれど)

10万件までならMySQLと遜色ないパフォーマンスを発揮することができるようです。

その特徴は。。

1.1ファイル1データベース
 バックアップ&リストアはコピー&ペースト。
2.ユーザを持たない
 誰でも閲覧可能なデータとかにいいのでは。ファイルへのアクセス権限をOSレベルで制限する。
3.データ型を持たない
 まぁ、INTとかVARCHARとか気にしなくてもいいようです。ただし、INT型を主キーにする場合は、明示的に宣言する必要があるようです。その場合は、オートナンバーとみなされるようです。

手軽なSQLiteの続きを読む

2007年3月20日

【MySQL×PHP】文字化け

文字化けの問題は終わらない。character-setをサーバ、クライアント,DBであわせるということは以前にもメモしたが、それだけじゃない。面倒くさい。文字化けの深刻さは、SQL文が文字化けするので、ちゃんとした結果が返ってこない。一見なんのエラーだか、さっぱりわからない。

今回は少し進展した。
phpのスクリプトに
SET NAMES cp932;
という文でうまくいくと以前メモしたが、どうもうまく行かない場合もある。
そんなときは、ujisで対応したらどうだろうか。
SET NAMES ujis;

また、my.ini(MySQLの設定ファイル(my.cnf))の[mysqld]の部分に下記を追加すると自動変換機能がオフになる。これで、文字化け問題を回避できる場合もある。
my.ini
[mysqld]
skip-character-set-client-handshake

さらにMyNAパッチを当てたlibmysqlclientおよびlibmysql.dllを入れ替える。
パッチのダウンロード
C:\php5\とかC:\WINDOWS\SYSTEM32\にコピーすればよい。

phpスクリプト側でmy.iniを読み込むようなコーディングも必要らしい。

PHP version 4 の場合
読めない。[client] に書いても無駄。
http://www.mysql.gr.jp/frame/modules/bwiki/?Contrib のパッチを当てる。

PHP version 5の場合
mysqli モジュールに、my.cnf を読む関数が用意されている。

mysqli_options(connection, MYSQLI_READ_DEFAULT_FILE, "/etc/my.cnf");
mysqli_options(connection, MYSQLI_READ_DEFAULT_GROUP, "php");

mysql コマンドでは大丈夫なのに、PHP,perl,accessなどで文字が ? に化けるのは?(文字化け) †

良くある勘違いは、
「mysqlコマンドが動いているから、自分のアプリも正しくコード変換するだろう」
というものです。
これは間違いです。

次の節の概念図をじっくり見てください。

MySQL サーバーとおしゃべりしている libmysqlclient.so (libmysql.dll) に、キャラクターセットが埋め込まれています。

mysql コマンドには default-character-set のオプションがあり、キャラクターセットの指定ができます。
これは libmysqlclient.so (libmysql.dll) の埋込キャラクターセットを上書きします。

しかし、MySQL AB が提供しているコマンド(mysqldump, mysql, mysqlimport等)や MyODBC 以外の、
別の誰かが作ったアプリやコマンドは、
my.cnf を読んだり、default-character-set オプションがあったりするわけではありません。
my.cnf を読んだり、default-character-set オプションが使えたり、SET NAMES 文が実行されたりするのは、
あくまでも、アプリ側の責任、作り手の責任なのです。
上の図で言えば、PHPMyAdmin や PHP 自身の部分に、キャラクターセットの指定をする処理や my.cnf を読む処理を、作り手が意図して書かない限り、実現しないのです。

これは perl だろうが Ruby だろうが、access だろうが、PHP と同じです。
(MyODBC(Connector/ODBC)は設定をすることで、my.cnf の [odbc] グループを読みます。
access で MyODBC を使用しているなら、my.cnf を読むオプションを有効にしておきます。)


コードを書くのが嫌なら(変更することが出来ない状況なら)、libmysqlclient (libmysql,dll) の埋込キャラクターセットを変えるのです。
これは libmysqlclient(libmysql.dll)のコンパイルのし直しを意味します。
なお、5.0.13-rc 以上では、mysqld --skip-character-set-client-handshake とすることで、libmysqlclient はサーバーのキャラクターセットに合せるようになります。
1 つのサーバーで 1 つのキャラクターセットしか使用しない(4.0までのように)のであれば、skip-character-set-client-handshake オプションの指定だけで OK です。
このとき、libmysqlclient の re-compile は不要です。

2007年3月 8日

ヨロンマラソン 完走

与論島はほぼ半径6kmの島なんだが、フルマラソンのコースはこの島を2周する。途中強烈な坂があり、完走後歴戦の猛者たちと飲み屋で交流を持ったが、このコースが国内で一番厳しいらしい。海外でもこれだけの難コースがあるかどうか。なにせ、フラットな道が5kmしかない。

自分の感想では、これまで走った中でも一番美しいコースだった。ジャマイカでビーチ沿いを走ったが、ほとんど海は見れなかったが、このコースは別格だ。アップダウンがある分、その展望がすばらしい。何人ものランナーがその美しさに足を止め、写真撮影をしている。

島民はこころ温かい。言葉も南国で、心地よい。いい大会だと思った。実力をあげてまた挑戦したい。

大会前日。雨。そして、当日の予報では降水確率70%。ありえないよ。雨の中で42.195キロ。と思ったら。。

ヨロンマラソン 完走の続きを読む

2007年3月 4日

与論島、プロペラ、白浜、船酔い

なんとかなるだろうと飛行機を予約せずに行ったんだが、かなり甘かった。飛行機は一日一便。船も一日一便。キャンセル待ちで乗れるだろうと楽観的に那覇まで行くと、なんと那覇-与論間の飛行機は39人乗りのプロペラ機。その日のマラソン参加者は1300人。む、むりだろ。しかし、スズメの涙程度に増便があって(4便)、4本目を待つこと5時間。なんとか滑り込みセーフ。その間にオリオンビールと泡盛で十分すぎるほど酔っ払いに。

さすがに、離島。とても交通の便が悪いだけに、白浜は綺麗に残っている。ジャマイカにこんなに美しい海岸があっただろうか。写真をとるのを忘れたのが悔やまれる。ウミガメが産卵するためにビーチへやってきている。本当に綺麗なところだ。

そして帰り。暴風波浪注意報。飛行機は乗れず、フェリーで那覇へ。5時間だ。フェリーがまるで小船のようにどんぶらこ、どんぶらこっと波にもまれている。船内を真直ぐに歩行するのも困難で、胸がムカムカする。頭もグラグラする。はっきり言ってフルマラソンよりきつかった。与論に行くには絶対飛行機がいい。フェリーの旅に男のロマンはなかった。。。

2007年3月 3日

【MySQL】システムで予約されているエラー(-7776)

システムで予約されているエラー(-7776)です。このエラーに対するメッセージはありません。

ODBCでMySQLにリンクした後に、Accessから更新しようとすると上記のエラーがでる。ODBCの問題なのか、日本語の問題なのか、はたまた、MySQLの問題なのか。MySQLとAccessとの連携の道のりは険しい。

今回は先にLOAD DATA INFILEコマンドで1万4千件のレコードをインポートしてから行った。試しに、空のデータベースに対して同じように検証した場合、上記のエラーは出ず、今のところ問題はない。

2007年3月 2日

世界の終わりとハードボイルド・ワンダーランド

村上春樹著の「世界の終わりとハードボイルド・ワンダーランド」を読んだ。

平穏が欲しいか。平穏が欲しければ、心を失うしかない。期待がなければ、失望もない、絶望もない。悩みもない。静寂・平穏な毎日が送れるのだ。そのためには、心に高い壁を作ってこころがブレないようにしていかなければならい。もしあなたなら、心のない平穏な日々を選びますか、それとも期待と欲望と、そして絶望の断続的、ジェットコースターのような毎日を選ぶだろうか。

MySQLとAccess連携

MySQLとAccess連携でメリットは下記のように考えている。(もっとあると思うけど。)
・高機能データベースをAccessのフォームインターフェイスを作って操作できるというメリットは大きい。
・開発もphpよりは簡単だし、ユーザは使い慣れている。
・Accessを複数人(経験では8人)でネットワーク上で使用すると、よくAccessデータベース自体が破損してしまう。(使用頻度-高、レコード件数-約1万5千件/年、ファイルサイズ11MB)

AccessからMySQLを操作する場合下記のことに注意しなければならない。

MySQLとAccess連携の続きを読む

【MySQL】データのインポート

MySQLで他のファイル(csvファイルとか)からインポートする場合、下記の4つのパターンがある。(もっとあるかも知れないが。。)

1.ACCESSのODBCを使う。
2.MYSQLクライアント(コマンドプロンプトで)LOAD DATA (LOCAL) INFILEコマンドを使う。
3.MYSQLIMPORTを使う。
4.ファイルに記述されたINSERT構文を実行する

mysqlimportは、文字コードの指定が効かないなど、あんまりいい思いをしていないので、LOAD DATA INFILEでの成功設定事例を掲載する。

【MySQL】データのインポートの続きを読む

2007年3月 1日

PHP文字化け問題

以前にもとりあつかっているが、PHPの文字化け問題だが、MySQLの文字化けを解決した後は、PHPを使ってブラウザに表示する時にも文字化けする。やっかいだ。サーバ、データベースの設定がしっかりしていてもだめなのだ。そんな時は、PHPスクリプトに明示的に記述してやるとうまく行くことがある。

PHP文字化け問題の続きを読む

XAMPPを設定する

XAMPPは各種設定ファイルがどこにあるのかわかりにくい。最近その索引を見つけた。これがないとねぇ。ちなみに日本語の最新版はXAMPP 1.6.0a 。PEARも標準でインストールされている。(パッケージのインストールはされていないが)

最新版の特徴:

* Apache 2.2.4
* MySQL 5.0.33
* PHP 5.2.1 & PHP 4.4.5
* phpMyAdmin 2.9.2
* FileZilla FTP Server 0.9.22
* OpenSSL 0.9.8d


参考

XAMPPを設定するの続きを読む