2008年8月アーカイブ

<<前回の記事>>
 

当サイトで公開しております『Site Manager』が、またまた雑誌で紹介されました^^
今回掲載されました雑誌は、『iP! 2008年10月号』です。

一回でも嬉しかったのに2回目だなんて彡☆ヾ(⌒▽⌒ )ノ

もう感激です!!

iP 2008年10月号

当サイトのブログを構築するために『Movable Type』というツールというかシステムを使用しているのですが、本日、ついにヴァージョンを 4.13 から 4.21 に上げました!!
★祝福の大砲!☆(ノ^o^)♂ドド-ン
★祝福の大砲!☆(ノ^o^)♂ドド-ン

( ̄ェ ̄;) エッ?
何か変わったのか!?

いや・・・その・・・実は・・・
サイトを閲覧する側からは違いがないんです(;´▽`A``
あ、一番下に表示されているヴァージョンが変わってますwww

でも、でも・・・ 今までは、なかったコミュニティ機能が実装されているのです。 早速この機能を使うべく、当サイトにて配布しております『Site Manager』の掲示板を、今までは PHP で作成された物を使用していたのですが、これをやめて『Movable Type』の掲示板に変更しました。
彡☆ヾ(⌒▽⌒ )ノ

これによって、今までは二つのシステムを使用して管理しておりましたサイトを、一つのシステムで管理出来るようになったのです。

『それって、俺たちには関係ないじゃん(閲覧者の声)』

そ・そ・そうなんですけど・・・(;´▽`A``

<<前回の記事>>
 

先日、ネット上から注文いたしましたマウスパッド(DHARMAPOINT Tactical Pad ソフトタイプ DRTCPW30S)が到着しました。早速開封して卓上に設置して使用しております。

使ってみた感じですが、マウスの滑りは並クラスだと思うのですが、今まで使用していた物がとても良く滑る物だったせいか滑りが悪く感じてしまいます。逆に言うと今まで使用していた物が滑りすぎるほど良く滑る物だったんだと痛感させられました。
滑り具合に関しては、まだまだ抵抗がありますが、クリックのしやすさはとても良いです。クリック時にマウスが滑ったりしないため確実なクリックができます(ストッピングに優れている)。ストッピング性に関して言えば、今まで使用していた物より遙かに優れています。同程度の滑り具合のパッドは多々あると思いますが、クリックのしやすさでは群を抜いているのではないのでしょうか。

それにしても、今まで使用していたパッドはホント良く滑ったよな・・・

余談になりますが、DHARMA POINTの物を購入すると、オンラインFPSである『サドン・アタック』のアイテムクーポンが付いてきます。
自分は、『サドン・アタック』をやらないので、このクーポンをオークションにだして売っております。
1枚目が約600円で、2枚目は約800円で売れてしまいました^^
今回付いてきた、クーポンもしっかりとオークションに出品いたしますw
 

<<続く>>

タイトルを見て、これ何!?
と思われたかと思いますけど、これは、マウスパッドなんです^^;

今現在、ハーデスが使用しているマウスパッドで『DHARMAPOINT Tactical Pad ハードタイプ DRTCPW30H』という名称なんですが、縦26㎝横30㎝とマウスパッドとしては結構(かなりかもw)大きめの物です。

このマウスパッドですが、『DHARMA POINT』というブランド名でゲームデバイスを専門としているブランドなんです。

さてさて、このマウスパッドの使用感ですが、マウスの滑りがとてもいいです。他メーカーの物になりますが『エアーパッドプロIII』並によく滑ってくれます。
大きな違いとして『エアーパッドプロIII』は、専用のマウスソールを使用することが前提ですが、『DHARMA TACTICAL PAD ハードタイプ』は、マウスソールを交換することなく良く滑ります。

ただ、この『DHARMA TACTICAL PAD ハードタイプ』は、どうも熱に弱いようです。マウスパッドの素材にアルミ蒸着層(アルミニウムが使われている!?)なるものがありますが、アルミが熱伝導がいいせいか手が乗っている部分や日の当たる部分などが熱膨張をおこしているようで、伸びて盛り上がってくるのです。

この盛り上がった部分にマウスが乗ると、『ザラッ』っとした感触が伝わり折角の滑りの良さが台無しになってしまいます。滑りの良さがとても気に入ったマウスパッドだけに、とても残念ですが、別のマウスパッドに乗り換えることにいたしました。

まだ注文したところなので、届いてはおりませんが『DHARMAPOINT Tactical Pad ソフトタイプ DRTCPW30S』を使用してみるつもりでいます。 こちらは、熱膨張で伸びたりしないとは思いますけど^^;
 

<<続く>>

<<前回の記事>>
 

今回の『C#でMySQLを操作する』は、データの削除について説明していきたいと思います。
では、早速説明に入っていきましょう。

例として、単価テーブル(t_tanka)のデータを削除してみます。

テーブル名: t_tanka
タイプ: InnnoDB

番号
(i_nbr)
名称
(i_nme)
単価
(i_tnk)
1 コーヒー 150
2 紅茶 130
3 緑茶 120
4 ミネラルウォーター 100

削除データ

番号 名称 単価
4 110

↓↓コーディング例

// MySQL コネクション定義
MySqlConnection myConn;

// 接続パラメータ設定
String strConn = "Database=sample;"
  + "Data Source=rhea.gaia.home;"
  + "User ID=sample;"
  + "Password=sample";
try {
  // MySQLへ接続
  myConn = new MySqlConnection(strConn);

  // 接続を開く
  myConn.Open();

  // キャラクタセット設定(シフトJIS)
  MySqlCommand myCom
    = new MySqlCommand("SET NAMES sjis", myConn);
  myCom.ExecuteNonQuery();
} catch (Exception ee) {
  myConn.Close();
  MessageBox.Show(ee.Message);
  return;
}

// SQL 作成
String strSQL1 = "Delete From t_tanka Where i_nbr = 4 ";
try {
  // MySQL コマンド作成
  MySqlCommand myCommand
    = new MySqlCommand(strSQL1, myConn);

  // データ削除
  if (myCommand.ExecuteNonQuery() == 1) {
  } else {
    MessageBox.Show("データが正常に削除されませんでした");
  }
} catch (Exception ee) {
  myConn.Close();
  MessageBox.Show(ee.Message);
  return;
}

// コネクションを閉じる
myConn.Close();

 では、削除に関しての部分を観ていきましょう。

1) データを削除するためのSQL作成
String SQLテキスト = "Delete From t_tanka Where i_nbr = 4 ";

2) データを更新するためのコマンド作成
MySqlCommand コマンド名
  = new MySqlCommand(SQLテキスト, コネクション名);

3) データ削除
コマンド名.ExecuteNonQuery();
このメソッドは、処理したデータ件数を返しますので、正常に挿入されたか確認するには、返ってきた値をチェックして下さい。

前回までに説明いたしました、データ挿入及び更新と比べてプログラムのコーディングそのものに大きな違いがないことが分かると思います。

※ 表示の都合上『¥』記号が『\』になっておりますが実際には半角の¥記号になります。
 

<<続く>>

 

一番欲しかったスライサーを、ついに買っちゃいました彡☆ヾ(⌒▽⌒ )ノ

psu20080824_180035_001.jpg

これメチャクチャ欲しかったんですよネ。
( ̄ェ ̄;) エッ?
強化ですか!?
もちろん、やっていません!!
今の資金では、強化失敗して折角のスライサーが折れてしまったどうするのですか。

話は、変わりますけど『PHANTASY STAR UNIVERSE』は現在イベント中なのです。イベントミッションですと、なんと経験値2倍、アイテムドロップ2倍と凄いことに・・・

さらには、イベントミッションでレアミッションに当選すると経験値5倍、アイテムドロップ5倍という、とんでもないイベントミッションに参加できてしまうのです。

本日PTしていました、メンバーの一人が、このレアミッションに当選しまして、その人の好意で、レアミッションに連れて行ってもらいました^^

イベントの、おかげもあってLvは調子よくあがって現在はLv67になりました^^

なんか、すっかりPSUに、はまってしまっております^^;

当サイトの管理人ことハーデスは、mixiにも登録しておりますがmixiでは日記をかいておらず、当サイトの更新情報がmixiに流れるように設定しております。

まず、ブログとmixiを連動させるには、ブログ側がRSS(RSSについてはWikipediaで)に対応している必要があります。RSS非対応だとmixiとの連動は無理ですので諦めましょう。

当サイトを例にとってみますと、RSSのURLが『http://hades.arrow.jp/blog/rss.xml』となっております。このURLをmixi側に仕込んでやるとブログの更新情報をmixi側が読み取るようになるのです。

mixiの右上にあります『設定変更』という所をクリックすると、以下のような設定画面が表示されます。

mixi(1).jpg

ここで、ブログとmixiを連動させるためには3ヶ所書き換えればできます。

 日記・ブログの選択  その他
 日記・ブログのURL  http://hades.arrow.jp/
 RSSのURL  http://hades.arrow.jp/blog/rss.xml

という具合に設定いたしますと、ブログとmixiを連動させるための設定は完了です。

ただ、ブログの更新情報はリアルタイムにmixiが読み取っている訳ではなく2~3時間おきに反映されるようです。

PHANTASY STAR UNIVERSE イルミナスの野望』を始めてから10日がたちました。キャラも上がりは遅いかもしれませんが順調に育ってLv50になりました^^

使ってみたかったSクラスのスライサーも装備出来るようになり、スライサーで暴れておりますw
さすがに強化出来るほど、お金が貯まっていないので未強化ですけど^^;

ホントは、一番欲しかったスライサーがあるのですが、とても高すぎて今の自分では手が出ません。
((( T_T) トボトボ
いずれは、装備してやる~~~!!

そういえば、昨夜にPTした人が凄いお金持ちで、『所持できる最大までいってしまっている』とか言っておりました。オイラが『PSU始めて1週間程度だと言うと』、最初は大変だろうからって1Mメセタくれたのです。

※ 装備している武器はではありませんw
スライサーという武器でエネルギー刃を飛ばすぶきなのです。

今月中旬にリリースされました『Movable Type 4.2』ですが、ハーデスが登録しております『豚の貯金箱』に関する専用のブログを作ることにしましたので、そっちのほうで使用してみました。

導入のやりかたに関しては、4.13 の時と同様でしたので問題はないかと思います。
パフォーマンスが改善されたとのことなのですが、こちらと違うサーバー環境ですので比べても意味がないですネ。
コミュニティ機能も試していませんし。
ヾ(;´▽`A``アセアセ

Movable Type 4.2 で作成しているサイトは、こちらです。

こちらのサイトは使用しているスキンの問題から、まだヴァージョンアップしておりませんが、スキン作者の方の対応が早いようで、そろそろβが出せるような書き込みがありました。
βが出たら早速ヴァージョンアップしてみてもよさそうですネ。

彡☆ヾ(⌒▽⌒ )ノ

今月中にリリースとなっておりました、『Movable Type 4.2』が早くもリリースされました^^

リリース時期が延期され、8月中のリリースになったためてっきり下旬にリリースされるものと思っておりましたが、8月14日にリリースされていたのです。

パフォーマンス向上やコミュニティ機能も追加されているので楽しみです。
彡☆ヾ(⌒▽⌒ )ノ

これは是非とも、4.2にヴァージョンアップしたいところなのですが、現在このブログで使用しているスキンが4.2には対応していないので、その対応をまってからヴァージョンアップしたいと思います。

<<前回の記事>>
 

『C#でMySQLを操作する』も、もう5回目となりました。今回は、データの更新について説明していきたいと思います。
では、早速説明に入っていきましょう。

例として、単価テーブル(t_tanka)のデータを更新してみます。

テーブル名: t_tanka
タイプ: InnnoDB

番号
(i_nbr)
名称
(i_nme)
単価
(i_tnk)
1 コーヒー 150
2 紅茶 130
3 緑茶 120
4 ミネラルウォーター 100

更新内容

番号 名称 単価
4 110

↓↓コーディング例

// MySQL コネクション定義
MySqlConnection myConn;

// 接続パラメータ設定
String strConn = "Database=sample;"
  + "Data Source=rhea.gaia.home;"
  + "User ID=sample;"
  + "Password=sample";
try {
  // MySQLへ接続
  myConn = new MySqlConnection(strConn);

  // 接続を開く
  myConn.Open();

  // キャラクタセット設定(シフトJIS)
  MySqlCommand myCom
    = new MySqlCommand("SET NAMES sjis", myConn);
  myCom.ExecuteNonQuery();
} catch (Exception ee) {
  myConn.Close();
  MessageBox.Show(ee.Message);
  return;
}

// SQL 作成
String strSQL1 = "Update t_tanka "
  + "Set i_nme = \"水\" "
  + "  , i_tnk = 110 "
  + "Where i_nbr = 4 ";
try {
  // MySQL コマンド作成
  MySqlCommand myCommand
    = new MySqlCommand(strSQL1, myConn);

  // データ更新
  if (myCommand.ExecuteNonQuery() == 1) {
  } else {
    MessageBox.Show("データが正常に更新されませんでした");
  }
} catch (Exception ee) {
  myConn.Close();
  MessageBox.Show(ee.Message);
  return;
}

// コネクションを閉じる
myConn.Close();

 では、更新に関しての部分を観ていきましょう。

1) データを更新するためのSQL作成
String SQLテキスト = "Update t_tanka "
  + "Set i_nme = \"水\" "
  + "  , i_tnk = 110 "
  + "Where i_nbr = 4 ";

2) データを更新するためのコマンド作成
MySqlCommand コマンド名
  = new MySqlCommand(SQLテキスト, コネクション名);

3) データ更新
コマンド名.ExecuteNonQuery();
このメソッドは、処理したデータ件数を返しますので、正常に挿入されたか確認するには、返ってきた値をチェックして下さい。

前回のデータ挿入と比べて頂けるとわかると思うのですが、前回との違いは、SQL(クエリー)が違うだけで他は同じなのです。

※ 表示の都合上『¥』記号が『\』になっておりますが実際には半角の¥記号になります。
 

<<続く>>

つ・つ・ついに~~~!!
50,000HIT達成です 彡☆ヾ(⌒▽⌒ )ノ

これというのも完璧にトラフィック・エクスチェンジのおかげですな (;´▽`A``

まだ、当分はトラフィック・エクスチェンジを利用してアクセス数稼いでやるじぇ
( ̄∇+ ̄)vキラーン
 

Orange Traffic

<<前回の記事>>
 

今回の『C#でMySQLを操作する』では、データの挿入について説明していきたいと思います。
では、早速説明に入っていきましょう。

例として、単価テーブル(t_tanka)にデータを挿入してみます。

テーブル名: t_tanka
タイプ: InnnoDB

番号
(i_nbr)
名称
(i_nme)
単価
(i_tnk)
1 コーヒー 150
2 紅茶 130
3 緑茶 120

挿入するデータ

番号 名称 単価
4 ミネラルウォーター 100

↓↓コーディング例

// MySQL コネクション定義
MySqlConnection myConn;

// 接続パラメータ設定
String strConn = "Database=sample;"
  + "Data Source=rhea.gaia.home;"
  + "User ID=sample;"
  + "Password=sample";
try {
  // MySQLへ接続
  myConn = new MySqlConnection(strConn);

  // 接続を開く
  myConn.Open();

  // キャラクタセット設定(シフトJIS)
  MySqlCommand myCom
    = new MySqlCommand("SET NAMES sjis", myConn);
  myCom.ExecuteNonQuery();
} catch (Exception ee) {
  myConn.Close();
  MessageBox.Show(ee.Message);
  return;
}

// SQL 作成
String strSQL1
  = "Insert Into t_tanka(i_nbr, i_nme, i_tnk) Values(4, \"ミネラルウォーター\", 100) ";
try {
  // MySQL コマンド作成
  MySqlCommand myCommand
    = new MySqlCommand(strSQL1, myConn);

  // データ挿入
  if (myCommand.ExecuteNonQuery() == 1) {
  } else {
    MessageBox.Show("データが正常に挿入されませんでした");
  }
} catch (Exception ee) {
  myConn.Close();
  MessageBox.Show(ee.Message);
  return;
}

// コネクションを閉じる
myConn.Close();

 前回までに、説明いたしました接続方法などについての説明は省いて、挿入に関しての部分を観ていきましょう。

1) データを挿入するためのSQL作成
String SQLテキスト
  = "Insert Into t_tanka(i_nbr, i_nme, i_tnk) Values(4, \"ミネラルウォーター\", 100) ";

2) データを挿入するためのコマンド作成
MySqlCommand コマンド名
  = new MySqlCommand(SQLテキスト, コネクション名);

3) データ挿入
コマンド名.ExecuteNonQuery();
このメソッドは、処理したデータ件数を返しますので、正常に挿入されたか確認するには、返ってきた値をチェックして下さい。

※ 表示の都合上『¥』記号が『\』になっておりますが実際には半角の¥記号になります。
 

<<続く>>

昨夜、PSP版『PHANTASY STAR PORTABLE』のストーリーミッションが全て完了いたしました。
ストーリーとしては、長いものではありませんが、薄い内容でもなかったですね。
ネタばれになってしまいますので内容については控えますけど(;´▽`A``
ちょっぴり(涙ポロリほではないけど)感動的でした^^

これまで、自分がクリアーしたRPGの中で一番ストーリーが好きな物といえば・・・

やっぱり『FINAL FANTASY VII』ですヨ^^
途中で主人公と知り合うこととなるヒロインが、ストーリー半ばで死を迎えつつもストーリー完結まで影響し続ける・・・
自分は、このヒロインを中心に育てていたので、その瞬間はショック大きかったですけどネ(;´▽`A``

しかし、ストーリー終盤でいないはずのヒロインの残した・・・(ここまでにしておきましょう)
とにかく『FF-VII』には感動させられましたヨ^^

話は、『PTANTASY STAR PORTABLE』に戻りますが、ストーリークリアーで完了というわけではなく、フリーミッションは、かなりいっぱい残してしまっていますので、今後はこちらを進めて行こうと思っております。
が・・・
確か・・・
このゲームマルチエンディングだったような気が・・・
マルチストーリーだったかも^^;

とりあえず、もう一度最初からやってみようかという気もw
せっかくだからPSUのキャラを取り込めるようになっているので、PSUのキャラでやり直してみるのもよさそうですネ^^

またまた『PHANTASY STAR UNIVERSE イルミナスの野望』ネタです(;´▽`A``
すんませんm(_ _"m)ペコリ

PSUをやり始めてから毎日プレイしているおかげでレベルもなんとか24まで上がりました。
といっても、それほど、やりこんでいる訳でもありませんのでレベルの上がりは遅いです。

二日目に出会った方とは10以上差がでていますし(;´▽`A``

さら~に金が無いというのに、またまた洋服を買ってしまいました(アフォですなw)。
いつまでたっても金が貯まらない訳だw

基本的にPSUは、MOなんですけど、もっと人が多いと楽しいんでしょうネ~・・・
某巨大掲示板にも『過疎』の書き込みなどありましたけど、掲示板が賑わっている割には、人が少ないように思います。

PSP版『PHANTASY STAR PORTABLE』をやっていて、オンラインでパーティプレイしてみたくて始めたのに、人が少ないせいでPSUでもソロプレイって
Σ( ̄ロ ̄lll) ガビーン

自分みたいにPSP版やってみて、PSUをやる人が増えるといいなぁ~・・・

PHANTASY STAR UNIVERSE イルミナスの野望』をやり始めてから4日目です。

うぷぷ彡☆ヾ(⌒▽⌒ )ノ
やっと、上級職である『アクロファイター』にチェンジできました~^^

PSUを、始めて二日目に出会った方と昨夜もPTしたのですが、その方のおかげでレンジャーLvが一気にあがったのです。そのかいあって、こんなに早くに上級職にチェンジできてしまったのです。
彡☆ヾ(⌒▽⌒ )ノ

ついでに、装備と服も新調しました。
いろいろ買い込んだせいか手持ちの、お金(ゲーム内マネー)が半分になってしまった・・・Orz

また、貯めなくっちゃ(;´▽`A``

PHANTASY STAR UNIVERSE イルミナスの野望』をやり始めてから三日目になりました。PSP版『PHANTASY STAR PORTABLE』に比べたらレベルなどは上がりにくいですけど、オンラインならではの楽しみがあります。これはPSPを『XLink Kai』でオンライン接続しても味わえないでしょうね。

これまでは、オンラインゲームというとMMORPGを中心にプレイしてきましたが、その大半が『ただクリックしているだけ』ぞくに言う『クリゲー』ばかりをやっておりましたが、PSUはクリゲーとは違いアクションRPGなので、また違った面白さがありますネ^^

以前に、PSUの前進である『PHANTASY STAR ONLINE』をやったときは、何故かアクションRPGを面白いと思えずにすぐにやめてしまったのですが。今は、面白いと感じます。

これもPSPの影響かもしれません。不思議な物ですね・・・

↑↑惑星間航行シーン↑↑

PSPでPSPを・・・

PSPで『PHANTASY STAR PORTABLE』をやっていたら、ストーリーモードだけでなく、マルチモードによるオンライン接続プレイがやってみたくなってきました。

かと言って、手近に相手がいないし・・・
XLink Kai』を使うという手もあるのですが、これだとチャットも出来ないし・・・

と、いう訳で買ってしまいました(;´▽`A``

PHANTASY STAR UNIVERSE イルミナスの野望

やり始めたところですが、PSP版に比べて画像は綺麗です(当たり前ですねw)。
やはりPC版だけに、1280×1024の解像度でのグラフィックは綺麗ですヨ^^
ついでに、ゲーム内にあったPSPのポスターの前で記念撮影してみましたw

なんか、『真・三国無双 5』がすっかり、どこかへ飛んでいってしまいましたが、少し待てば安くなるかな(;´▽`A``
それを期待しましょう・・・少しだけ・・・

<<前回の記事>>
 

今回で、第3回目となりました。いよいよ今回から本題となる内容に入っていきます。今回は『データの読込み』について説明していきたいと思います。

今後の説明で使用いたしますサンプル・テーブルは、『InnnoDB』タイプのテーブルを使用していきます。

テーブル名: t_tanka

番号
(i_nbr)
名称
(i_nme)
単価
(i_tnk)
1 コーヒー 150
2 紅茶 130
3 緑茶 120

↓↓コーディング例

// MySQL コネクション定義
MySqlConnection myConn;

// MySQL コマンド定義
MySqlCommand myCommand;

// MySQL データリーダー定義
MySqlDataReader myReader;

// 接続パラメータ設定
String strConn = "Database=sample;"
  + "Data Source=rhea.gaia.home;"
  + "User ID=sample;"
  + "Password=sample";
try {
    // MySQLへ接続
    myConn = new MySqlConnection(strConn);

    // 接続を開く
    myConn.Open();

    // キャラクタセット設定(シフトJIS)
    MySqlCommand myCom
      = new MySqlCommand("SET NAMES sjis", myConn);
    myCom.ExecuteNonQuery();
} catch (Exception ee) {
    MessageBox.Show(ee.Message, "Error");
    return;
}

// SQL 作成
String strSQL = "Select i_nbr, i_nme, i_tnk From t_tanka ";
try {
  // MySQL コマンド作成
  myCommand = new MySqlCommand(strSQL, myConn);

  // MySQL データリーダー作成
  myReader = myCommand.ExecuteReader();
} catch (Exception ee) {
  myConn.Close();
  MessageBox.Show(ee.Message, "Error");
  return;
}

// データを読込み処理を繰り返す
while (myReader.Read() == true) {
  Int32 i_nbr = 0;
  String i_nme = "";
  Decimal i_tnk = 0;

  // 一連番号取得
  if (myReader.IsDBNull(0) == true) {
    i_nbr = 0;
  } else {
    i_nbr = myReader.GetInt32("i_nbr");
  }

  // 名称取得
  if (myReader.IsDBNull(1) == true) {
    i_nme = "";
  } else {
    i_nme = myReader.GetString("i_nme");
  }

  // 単価取得
  if (myReader.IsDBNull(2) == true) {
    i_tnk = 0;
  } else {
    i_tnk = myReader.GetDecimal("i_tnk");
  }
}

// 接続を閉じる
myConn.Close();

順に見ていきましょう。

1) 読込を行うためのコマンド定義
  MySqlCommand コマンド名;

2) 読込に使用するデータリーダー定義
  MySqlDataReader データリーダー名;

3) 読込に使用するSQLの作成
  String SQLテキスト = "Select i_nbr, i_nme, i_tnk From t_tanka ";

4) SQLコマンド作成
  コマンド名 = new MySqlCommand(SQLテキスト, コネクション名);

5) データリーダー作成
  データリーダー名 = コマンド名.ExecuteReader();

6) データの読込み
  データリーダー名.Read()
  このメソッドは、データが無い場合には『False(偽)』を返します。

7) フィールドの中が空かどうかの確認
  データリーダー名.IsDBNull(0)
  括弧ないの0は、SQLテキスト内のフィールドの順番をしまします(先頭は0)。
  そして、このメソッドは、データが空だと『True(真)』を返します。

8) 値の取り出し
  データリーダー名.GetInt32("i_nbr");  ←  Int32型の項目
  データリーダー名.GetString("i_nme");  ←  String型の項目
  データリーダー名.GetDecimal("i_tnk");  ←  Decimal型の項目
  括弧内は、テーブルのフィールド名か、フィールドの順番を記述します。

注意しなければならないのは、データの値を取り出す前に、そのフィールドの値が空かどうかを確認する必要があります。ただし、対象となるフィールドが『Not Null』属性を持っている場合には、確認する必要はありません。

実際に、プログラムを作る際には、こういった確認を各フィールド毎に行うのも効率が悪いので、値を確認してその結果によって0や空文字列(空文字列は長さ0の文字列)を返すような関数ないしクラスライブラリを作成する方がよいでしょう。
 

<<続く>>

<<前回の記事>>
 

 前回は、接続についての説明をたしましたので、今回は接続したコネクションを閉じる方法について説明したいと思います。

以前に説明した Access形式の DB でも、最後には接続を閉じる必要があると言いましたが、それは MySQL でも同じです。接続したら、最後には閉じることを行って下さい。

では、コーディング例を、ご覧になってみて下さい。

↓↓は、コーディングサンプルです。

// MySQL コネクション定義
MySqlConnection myConn;

// 接続パラメータ設定
String strConn = "Database=sample;"
  + "Data Source=rhea.gaia.home;"
  + "User ID=sample;"
  + "Password=sample";
try {
    // MySQLへ接続
    myConn = new MySqlConnection(strConn);

    // 接続を開く
    myConn.Open();

    // キャラクタセット設定(シフトJIS)
    MySqlCommand myCom
      = new MySqlCommand("SET NAMES sjis", myConn);
    myCom.ExecuteNonQuery();
} catch (Exception ee) {
    MessageBox.Show(ee.Message, "Error");
    return;
}

// 接続を閉じる
myConn.Close();

『またかw』と、思われた方もいらっしゃるかもしれませんが、コネクションを閉じるには、たった1行のコーディングでいいんです。Access形式の DB でも同じでしたね。

1) 接続を閉じる
  コネクション名.Close();

使うデータベースこそ違いますけどコーディングは、よく似ていますよね。
 

<<続く>>

もう1~2ヶ月前になるだろうか、3年ほど使用したノートPCが壊れてしまいました。液晶がおかしくなったとかCPUがお亡くなりになった訳ではなく、使用していると(HDやCD/DVDのアクセス頻度が高いとき)に突然電源が切れてしまうのです。

ウィルスの影響でもないし、どっかの回路がぶっとんだ模様・・・
このまま、諦めてしまうのはおしいので、保証は切れておりましたがサポートに連絡してみましたところ『点検費に12,800円かかり、さらに修理代がかかります』と言われてしまった瞬間に(-_-メ)プチッ!!
切れて『なら捨てるからいいよ!! ガチャン!!』
はぁ~Orz

そこで最近、ふとある物を所持していることを思い出し『そうだHDを再利用して外付けHDとして使える!!』と、お通じ・・・もとい、お告げがあったのです。

早速、ノートPCからHDのサルベージを行い、HDケースに入れて、PCに接続!!
おしっ正常に認識はされているな^^
続いて初期化~~~(100Gの初期化には時間がかかりました^^;)

初期化も問題なく完了して、外付けHDとして蘇ったのがこれです。

はぁ~、壊れたのがタワー型PCのほうなら自前で修理できるのだけど、ノートPCでは手がでませんね^^;

C#でDB を操作する』では、Access 形式の MDB ファイルの操作について説明いたしましたが、今回からはフリーDB として幅広く使用されております『MySQL』の操作について説明していきたいと思います。
備忘録 PartⅡの噂もありますがw

前提として、MySQL への接続には『MySQL Connector/ODBC』で行うのではなく、『MySQL Connector/Net 5.1』を使用してMySQLの操作を行います。

さて、第一回目となる、今回は『接続』に関してのの説明を行いたいと思います。
が、まずは【ソリューションエクスプローラ】の【参照設定】の中に『MySql.Data』を追加して下さい。

では、早速サンプルから見ていきましょう。

↓↓は MySQL Connector を使用する上で必要になります

using MySql.Data.MySqlClient;
using MySql.Data.Types;

↓↓コーディングサンプル

// MySQL コネクション定義
MySqlConnection myConn;

// 接続パラメータ設定
String strConn = "Database=sample;"
  + "Data Source=rhea.gaia.home;"
  + "User ID=sample;"
  + "Password=sample";
try {
    // MySQLへ接続
    myConn = new MySqlConnection(strConn);

    // 接続を開く
    myConn.Open();

    // キャラクタセット設定(シフトJIS)
    MySqlCommand myCom
      = new MySqlCommand("SET NAMES sjis", myConn);
    myCom.ExecuteNonQuery();
} catch (Exception ee) {
    MessageBox.Show(ee.Message, "Error");
    return;
}

1) MySQLコネクション定義
 MySQLへの接続を行うために必要となるコネクションの定義です。
 MySqlConnection コネクション名;

2) 接続パラメータ設定
 Database ← MySQL のデータベース名
 Data Source ← 接続するホスト名(IPアドレス指定も可能)
 User ID ← ユーザーID
 Password ← パスワード

3) MySQL へ接続
 コネクション名 = new MySqlConnection("接続パラメータ");

4) 接続したコネクションを開く
 コネクション名.Open();

5) キャラクタセットの設定(例として『シフトJIS』を設定してます)
 MySqlCommand コマンド名
   = new MySqlCommand("SET NAMES sjis", コネクション名);
 コマンド名.ExecuteNonQuery();

以上のような流れで MySQL への接続が可能になります。
ただし、あくまでも接続しただけにすぎませんので、表面上はなんの変化も起こりません。

※ 5) のキャラクタセットの設定は、行わなくても問題のない場合もありますが、やっておいた方が無難だと思います。
 

<<続く>>

いやっほ~~~!!

ついにPSPを買いましたヨ^^
( ̄ェ ̄;) エッ?
今更PSPって!?

あ・・・PSPって『Play Station Portable』じゃないですよ(;´▽`A``
PHANTASY STAR PORTABLE』のことですwww

こっちのことネ^^b

本当は、『真・三国無双5 for Windows』を買うつもりでいたのですが、先日扇風機を購入したときに、こっちを一緒に購入してしまったのです(;´▽`A``

そういえば、『PHANTASY STAR』って言えば確か・・・
一作目は、ファミコン時代で,セガの販売してしたマスターシステム向けに作られたRPGだったんですよね。
しかも、あの時代に3Dで動くダンジョンを実装したんです。
今でこそ、3Dは当たり前ですが、ファミコン時代に3Dで動くダンジョン実装だなんて凄いと思いませんか。

『PHANTASY STAR PORTABLE』少しやってみましたけど凄いですね!!
オンラインゲームの『PHANTASY STAR BB』より凄いんじゃないんでしょうか。
ポータブルタイプのゲーム機で、ここまで出来るんだ~と感心してしまいました。
ハードとしてPSPは、性能いいんですネ^^
これで、19,800円という価格から考えたらとんでもないハードです。

オンラインで、パーティ組んでミッションやってみたい~~~!!

自己紹介バトン
(mixi からバトンを回されてしまったので、mixi で日記使えない自分は涙目;;)

◆回された人わ3日以内に返答
◆アンカー禁止
◆回された人は回された人がルールを守っているか確認に回る事
◆守っていない場合は罰ゲーム

まず最初にバトンを回す5人

1.じゃすんさん
2.兄貴さん
3.黒蛇さん
4.ろろろーさん
5.KSKさん(マイミクしてないけど回させてもらいます)
 

名前 → LONGINUS イエス・キリストの処刑執行者の名前です(槍ではありません)
年齢 → 40過ぎてるよチキショ!!
好きな物 → 昔のアニメ(宇宙戦艦ヤマト世代です)、PCいじり、酒酒酒
恋人 → いねぇ~よチクショ!!
好きなタイプ → 現金成金(土地成金などはダメ)
嫌いなタイプ → ハイパー自己中
貴方の好きな漫画 → 松本零士の漫画
好きな音楽 → 杏里,角松敏生,松井慶子,小野リサ
好きなブランド → なし( ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄∧ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄)えっへん!
 

回す人はどんな人

1.じゃすんさん → 天然はいってます
2.兄貴さん → その名の通りw
3.黒蛇さん → 蛇好きの・・・(ry
4.ろろろーさん → 新米パパ
5.KSKさん → 素敵な絵やイラストを描く方
 

最後に回す人にイメージカラーをつけてね

1.じゃすんさん → 緑(なぜだべ??)
2.兄貴さん → エロ色w
3.黒蛇さん → 黒w
4.ろろろーさん → 琥珀色(ビール色w)
5.KSKさん → レインボーカラー
 

〔罰ゲーム〕

頑張ってグインサーガでも全巻読んでいただきましょうか・・(だそうです)←回す人が決めてよいそうですw

やった~~~彡☆ヾ(⌒▽⌒ )ノ

ついに 20,000 アクセス突破しました。 とは、言っても完全にトラフィックエクスチェンジのおかげなんですけどネ^^;
ハーデスが使用しているトラフィックエクスチェンジは、『Orange Traffic』というサイトです。

トラフィックエクスチェンジを使用していなかったら、1割の 2,000 アクセスくらいだったんでしょうネ(;´▽`A``

ポイントさえ稼げば一日で、3,000 アクセスくらいは行きますヨ^^

でも、アクセス品質に関しては、『良』とは言い難いかな^^;
大半の方がオートサーフ(自動でサイトが次々と表示されていく)だと思うので、じっくりとサイトを見てくれる人は少ないと思いますが、やっぱりアクセス数を上げたいですよネwww

昨日届いた扇風機ですが、今日確認してみると在庫切れに・・・
しかも、入荷の目処は立っていない状態に!!

ギリギリのところで注文していたんだな~・・・
冷風扇にするか、迷い続けていたら買えなくなっていましたヨ。
あ・・・そうなっていたら冷風扇を買っていたんだろうな^^;

買えてよかった~~~彡☆ヾ(⌒▽⌒ )ノ

話は飛びますけど、ただ今の気温38.5度ってΣ( ̄ロ ̄lll)

昨日ですが、目覚まし時計を買いに行ったときに甚平をみかけました。
昨日は、別になんとも思わなかったのですが、今日になって「あれ涼しそうだったな~」なんて思ったりしていると・・・

いつの間にか手には、部屋の鍵&財布が(買いに行く気満々w)・・・

そんなわけで、しっかりと買ってきてしまいました。

早速着替えてみると、あらま涼しい^^

ちょっと爺むさいけど、暑いのはいやじゃ!!
ってことで、今後の部屋着は甚平に決定ですwww

もう一着買っておいてもよさそうだな・・・

<<前回の記事>>
 

やった~~~!!

早くも扇風機が届きました。
いろいろ(かな~り)悩んだ挙げ句に冷風扇は、やめて扇風機にしておきました。イワタニ イオンリフレ マイナスイオンドライヤー扇風機「髪サラスリム」マイコンタイプ IS-ESL2 ホワイト×ブラックって奴を買いました。
形は、昔ながらの丸いのではなくてタワー型のやつで、面白いことにマイナスイオンドライヤー機能が付いています。届いてみると思ったいたより高さがあってチョットΣ( ̄□ ̄ノ)ノビックリ!

でも高さがあるだけに、縦方向へは広範囲に風がきますネ^^
チョット残念なのは、縦方向の風向きが変えられないことかな(;´▽`A``
まぁ、もともと縦方向には広範囲に風がでるけど、PCに向かって椅子に座っていると顔に風があたらないんです。
体は、全体に風が当たるのですけどね~・・・

ドライヤーの吹き出し口は椅子に座ってちょうどいい高さに付いています。鏡までついているしw

これで、地獄のような暑さから、すこ~~~し解放されます^^

風だけでも、結構違う物なんですね。。。

これまで使用していた目覚まし時計ですが、かれこれ、10年は使ったかなー・・・
あ、一応電波式のやつです。
もう、お年のせいかアラーム機能にボケ症状がでて、無駄に変な時間にアラームが鳴るんです。
すっげー迷惑www

と・・・言うわけで、新しい奴を近くのホームセンターで買ってきました。
メーカー不明w
値段は980円。でも、電波式ですよ^^

今まで使用していた物に比べて、二回りくらい小さいです。そのせいか文字も小さい(当然かw)。

でも、今度の奴は、日付に温度表示まで出来るのです。
よけいに暑さを実感してしまいそうだw

とりあえず、これからは、こいつに頑張ってもらいます。
これまでの奴は、時間が狂ったりする訳ではないので、別の部屋で使用いたします。

Site Manager  を更新いたしました。

最新ヴァージョンは、V1.1.2.0 になります。

今回の更新は、内部処理の変更とヘルプの修正になりますので、見た目的には、これまでの物と変わりがないです。
ヾ(;´▽`A``アセアセ

<<前回の記事>>
 

暑すぎるーーー!!
特に、この2~3日は異常に暑いですよね。

エアコンのない部屋にいる自分には地獄ですヨ(;´▽`A``

んな訳で、先日悩んでおりました扇風機・・・
やっぱ冷風扇も良さそう・・・
とか、悩んでおりましたが我慢の限界です。

いざ密林へGO!!
そして・・・ポチッっとな(ボヤッキー風に)

ついに購入です。
早く届けーーー!!

あ・・・ついでに、もう一つポチッっとな・・・
何をポチッっとしたかはナイショですwww


<<続く>>

ふとアクセスカウンターに目をやると・・・
あらまΣ( ̄□ ̄ノ)ノビックリ!

いつの間にやら10,000アクセス超えておりました^^

なーんて、実はトラフィックエクスチェンジなるものを利用してアクセス数を稼いでいたのです。
ヾ(;´▽`A``アセアセ

トラフィックエクスチェンジ??

他の会員のサイトを閲覧してポイントを稼ぎ、その稼いだポイントを利用して会員に自分のサイトを閲覧してもらうのです。
ポイントを貯めるたの閲覧にも自動と手動の2種類合って、自動ですと20秒ごとに次々とサイトが表示されます。
いっぽう手動は、見たいサイトを選んでクリック(こちらの方が取得できるポイントが多い)する必要があります。

このサイトを使用したおかげで、以前は『hades』でググっても、遙か彼方の下位ランクに表示されておりましたが、現在では、かなーり上位に表示されるようになりました。
彡☆ヾ(⌒▽⌒ )ノ

サイトをオープンしたばかりでアクセスが少ないよーという方はお試しあれ・・・

去年の12月に、今住んでいるところに引っ越してきたのだけれど、ここエアコン完備してなかったんですよね
ヾ(;´▽`A``アセアセ

部屋探ししているときは、広くて安いを条件に探していたら今住んでいる所が見つかったわけで・・・
んでも、エアコン無しってのは、やっぱ暑いわwww

せめて扇風機欲しいと思いネットで探してみると、『お!!良さそう』と思える物はだいたい在庫無し;;
やはり時期的に遅かったのかなー!?
とは言え、扇風機くらいは、やっぱ欲しいw

冷風扇も候補として考えてはいるのですが、冷風扇ってどうなんでしょ!?
ただでさえ湿気の多い日本の夏に、わざわざ湿気を増やすような物が効果あるのか不安が残ります。
使っている人いたら、使い心地教えて下さいm(_ _"m)ペコリ

ちなみに扇風機は、昔ながらの丸いやつでなくて、タワー型のを探しています。
丸いのって、スポット的にに風がくるだけなので、タワー型なら縦方向が丸形に比べて広範囲に風が来そう^^

↓↓今のところ第一候補です

↓↓悩んでいる冷風扇
ステラウォータークーラー FC-2080
ステラウォータークーラー FC-2200A


<<続く>>

当サイトでブログの作成に使用している、『Movable Type 4.2』のリリースが延期になってしまいました。
当初、7月中の予定から8月中にリリースと一ヶ月延期に・・・o(;△;)o エーン
結構楽しみにしていただけに、かなり残念です。
でも、出来の悪い物を無理矢理出す(M$ならリリースするなw)より、完成度の高い物の方がいいですからね。

ヴァージョン 4.2 では、フォーラムなどの管理も出来るので、かなり期待しております。
現在フォーラムは、別物を使用ているのでヾ(;´▽`A``アセアセ
やはり、一つのシステムで管理出来るのは、とても助かります。

『Six Apart』さんヾ(^^ゞ))..( シ^^)ツ フレーフレー

<<前回の記事>>

『C#でDBを操作する』は、今回が最終回です。

これまでに、DBへの接続から読込、そして各種更新系の説明をしてきましたが、今回は、トランザクションについての説明をして行きたいと思います。

まず、下記のようなテーブルが2つあったとします。

 

テーブル名: t_tanka

番号
(i_nbr)
名称
(i_nme)
単価
(i_tnk)
1 コーヒー 150
3 緑茶 120
4 ミネラル・ウォーター 100

 

テーブル名: t_zaiko

番号
(i_nbr)
在庫数
(i_zik)
1 50
3 30
4 60

 

入荷した商品

番号
(i_nbr)
名称
(i_nme)
単価
(i_tnk)
数量
(i_suu)
5 ウーロン茶 120 40

ここで、新た入荷した商品は t_tanka 及び t_zaiko の両方のテーブルに登録されておりません。
従って、入荷した商品のデータを t_tanka 及び t_zaiko の両方に登録する必要があります。
注意) なんらかの不具合が起こった場合に、片方だけ登録されてはいけないものとします。

こんな時には、トランザクションを使用すると良いでしょう。
トランザクションとは、簡単に言いますと『関連する処理を一つにまとめたもの』のことです。

以下は、データ挿入のコーディングサンプルです。

// DBコネクション定義
OleDbConnection dbc;

// トランザクション定義
OleDbTransaction dt;

// DBコマンド定義
OleDbCommand dc1;
OleDbCommand dc2;

// DB接続パラメータ設定
String strDBConnection = "Provider=Microsoft.Jet.OLEDB.4.0"
  + ";Data Source=sample.mdb"
  + ";Password=\"\""
  + ";User ID=Admin";

// DB接続
try {
  // DBコネクション作成
  dbc = new OleDbConnection(strDBConnection);

  // DBコネクションを開く
  dbc.Open();
} catch (Exception ee) {
  MessageBox.Show("DB Connection を確立できませんでした");
  return;
}

// トランザクション開始
dt = dbc.BeginTransaction();

// 単価テーブルへのデータを挿入するためのクエリー作成
String strSQL1 = "Insert Into t_tanka(i_nbr, i_nme, i_tnk) Values(5, \"ウーロン茶\", 120) ";

try {
  // DBコマンド作成
  dc1 = new OleDbCommand(strSQL1, dbc);

  // Insert Query を実行
  if (dc1.ExecuteNonQuery() == 1) {
    // 在庫テーブルへのデータを挿入するためのクエリー作成
    String strSQL2 = "Insert Into t_zaiko(i_nbr, i_zik) Values(5, 40) ";

    try {
      // DBコマンド作成
      dc2 = new OleDbCommand(strSQL2, dbc);

      if (dc2.ExecuteNonQuery() == 1) {
      } else {
        // 巻き戻し処理
        dt.Rollback();

        MessageBox.Show("在庫テーブルへの登録が失敗しました");
      }
    } catch {
      // 巻き戻し処理
      dt.Rollback();

      MessageBox.Show("Insert Query が正常に実行されませんでした(2)");
    }
   } else {
    // 巻き戻し処理
    dt.Rollback();

    MessageBox.Show("単価テーブルへの登録が失敗しました");
  }
} catch {
  // 巻き戻し処理
  dt.Rollback();

  MessageBox.Show("Insert Query が正常に実行されませんでした(1)");
}

// 挿入したデータを確定する
dt.Commit();

// DB接続を閉じる
dbc.Close();

順をおって見ていきましょう。

1) トランザクションを開始
  dt = dbc.BeginTransaction();

2) 単価テーブルへのデータ挿入
  String strSQL1 = "Insert Into t_tanka(i_nbr, i_nme, i_tnk) Values(5, \"ウーロン茶\", 120) ";
  dc1 = new OleDbCommand(strSQL1, dbc);
  if (dc1.ExecuteNonQuery() == 1) {
    ・・・
  } else {
    ・・・
  }

3) 上記 2) の処理が正常に行われたら在庫テーブルへデータを挿入
  String strSQL2 = "Insert Into t_zaiko(i_nbr, i_zik) Values(5, 40) ";
  dc2 = new OleDbCommand(strSQL2, dbc);
  if (dc2.ExecuteNonQuery() == 1) {
    ・・・
  } else {
    ・・・
  }

4) 上記 2) から 3) の処理が正常に行われたらデータの確定
  dt.Commit();


トランザクション.Rollback()
  トランザクション開始した状態に巻き戻すことができます。

トランザクション.Commit()
  挿入や更新,削除処理などで行われた結果を確定します。

※ 表示の都合上『¥』記号が『\』になっておりますが実際には半角の¥記号になります。

2009年12月

    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

リンク

相互リンク

あわせて読みたいブログパーツ