(12/02/01~)

12/02/03

3/16まで!「XE2」ジャンプアップ・キャンペーン
 2007 は昨年末でアップグレード対象から外れていますので、今回のジャンプアップキャンペーン対象は 1 ~ 2007 & Starter ユーザとなっています。

ジャンプアップキャンペーン (1~2007 & Starter ユーザー向け) 2012/03/16 まで

 "リオスさんの Rad Studio XE2 Enterprise の価格がない (購入ページがない)" 件と、"ComponetSource さんの Delphi Pro と C++Builder Pro の価格差" の件がちょっと気になりますが。

 今回のキャンペーン期間中に該当製品を購入すると "Delphi XE2 プログラミング入門" がもれなく貰えます (要応募)。

第21回 エンバカデロ・デベロッパーキャンプ
 出ます...遠隔地からですが。基本的に一度やったネタはやらない主義なので 地球儀 とか パノラマ写真とかはやりません。


12/02/11

Rapid SQL XE2 で Firebird に接続するには?
 某掲示板ネタですが、長くなるのでこちらで。

 さて、Rapid SQL XE2前回のキャンペーンで貰う事ができたので、所持している方も少なくはないと思います。ところが、この Rapid SQL XE2 は Firebird に接続できないようなのです。

 「いやいや、そんなアホな?」 と思って自分でも試してみましたが、どうやら本当のようです...ただ、断片的にですが上記リンク先に解決方法は書いてあります。ちょっと難儀しましたが、Firebird (2.1) へ接続する事ができました。下の画像は実際に接続している所のスクリーンショットです。

 繋がらない理由は、

 この 2 点のようです。Firebird 1.5 のクライアント DLL なら繋がるのでしょうけど、今更感がありますしねぇ。まぁ、それ以前の問題で、Rapid SQL XE2 のカタログには Firebird 1.5 / 2.0 対応と書いてあるのですが...。

 解決方法の詳細は以下のようになります。

  1. Jaybird (最新の Firebird JDBC ドライバ) を DL してくる。但し、"for JDK 1.5" と付くものを DL する事。
  2. "%ProgramFiles%\Embarcadero\RSQLXEProR2\Java\drivers\interbase" にある、"firebirdsql-full.jar" を 適当な名前にリネームしてバックアップしておく。
  3. Jaybird のアーカイブを "%ProgramFiles%\Embarcadero\RSQLXEProR2\Java\drivers\interbase" に解凍する。
  4. "jaybird-2.1.6-full.jar" を "firebirdsql-full.jar" にリネームする。
  5. Rapid SQL XE2 を起動。
  6. データソース登録の途中で [Advanced] ボタンを押して JDBC ドライバを Firebird に変更。
 こんな感じで接続できます。

 Firebird ドライバの設定がフッ飛んでしまった場合には、

  1. Driver List で [New] ボタンを押下
  2. Driver Properties の Name に "Firebird Driver" と入力 (他の名前でもいいが、"Firebird JDBC Driver" という名前は設定できない)。
  3. Driver Properties の Class に "org.firebirdsql.jdbc.FBDriver" と入力。
  4. [Add] ボタンを押して、Driver Properties の Requies に "%ProgramFiles%\Embarcadero\RSQLXEProR2\Java\drivers\interbase\firebirdsql-full.jar" を指定。
    このファイルは Jaybird をリネームしたものです。

 ちゃんとデータソースを設定出来た場合、後でこの設定を確認すると、消えたはずの "Firebird JDBC Driver" しか選べなくなります。実害はないようなので、"Firebird JDBC Driver" を選択して下さい。

 何言ってんのか解らないかもしれませんが、この現象に遭遇した方には解る話だと思います。Advanced で [Use Defaults] を押すと Firebird ドライバの設定が消える事があるんですよ。

 2011/02/13 追記: 「接続はできるようになったけれど、テーブル一覧が表示されない」 という現象に陥ったら、下記の手順を試してみて下さい。

  1. 一旦、Rapid SQL XE2 を終了
  2. Jaybird のドライバをリネームして元の名前 (jaybird-2.1.6-full.jar) に戻す。
  3. バックアップしてあったオリジナルの JDBC ドライバを元の名前 (firebirdsql-full.jar) に戻す
  4. Rapid SQL XE2 を起動
 当方では一応これでテーブル一覧を取得できています。

ODBC で Firebird に接続するには?
 Rapid SQL XE2 に限った話ではないですが、ODBC 接続もできます。

  1. Firebird 用 ODBC ドライバをインストールします。
  2. ODBC データ ソース アドミニストレーター で [システム DSN] タブを開き、[追加] ボタンを押します。
  3. 以下のように設定します。
 そんなに難しくはないですね。

 2011/02/13 追記: 以下の画像は同一のデータベースを Rapid SQL XE2 で JDBC / ODBC 接続したところです。

 ODBC 接続の場合、利用できる機能が少なくなるのが判ると思います。

Rapid SQL XE2 8.0.2?
 キャンペーンで貰えた Rapid SQL XE2 は 8.0.1 だったと思いますが、CodeCentral には 8.0.2 がアップされています

 こちら (8.0.2) も "Rapid SQL XE2" なのですが、8.0.1 を所持していても DL できないようです...気のせいでしょうか?

"それ以前の問題で、Rapid SQL XE2 のカタログには Firebird 1.5 / 2.0 対応と書いてある"
 RAPID SQL XE2 / 8.0.1 クイックスタートガイドを読んでいて気付いた。

 あー↑...あー↓...そういう事か。いや...これはちょっとカタログからは読み取れないわ。

 要は 「2.x へ接続するなら ODBC ドライバ使え」 って事よね...もはや、JDBC の存在意義さえ失われてるな (w

 MySQL も ODBC 接続だけど、MySQL は ODBC ドライバ同梱してあるだけ親切だわ...ただ、やっぱりクイックスタートガイドを読んで打ちのめされるかもだけど。

 ...orz。You、DBX で作り直しちゃいなヨ。


12/02/14

バレンタインのプレゼント?
 ...という訳ではありませんが。忘れていた事がありますのでご報告しておきます。

 IBConsole の 64bit 版を利用するためには、Firebird 64bit 版の fbclient.dll を ibclient64.dll にリネームしたものが必要です。未だテストが充分でないと判断したため、ベータ版扱いとなっています (特に 64bit)。

Delphi の 17 才の誕生日
 オメデトー...しかし "実は 28 才ではないのか?" という年齢詐称疑惑が浮上している模様。


12/02/15

SynEdit
 現在、SVN で取得できる SynEdit は Unicode 対応で、Delphi XE2 用のパッケージもあります。ブランチされた SynEdit はコードフォールディングに対応しています (Lazarus で使われているものと同等です)。

 IBConsole の独自ビルド版をなかなか作れなかった理由は 3 つありまして、一つは DBGrid の描画がおかしかった事で、こちらは Update でかなりマトモになりました。もう一つはこの SynEdit の XE2 (64bit) 対応状況でした。残りの一つは IBConsole ソースコードの非互換性部分についてです。

 SynEdit を使ってみようかな?という方への注意点ですが、SynEdit は日本語環境だと SynHighlighterJava.pas でコンパイルエラーになります (昔からですけどね)。プログラマ的な解決方法は、

 というものです。簡単な文字コード変換ツールを作ってみるといいかもしれませんね。海外製コンポーネントはこのような手順でソースファイルを UTF-8 化してから使うといいでしょう。

 SVN からの取得は Subversion インテグレーション ([ファイル | バージョン管理リポジトリから開く...]) の機能を使うと簡単です。

 こんな感じで。


12/02/16

Youtube にアップした FireMonkey 関連動画
 新作です。

 流れ的にはですね、
  1. "分子モデル (カフェイン) ビューア"...だと?」
  2. 「よろしい、ならばこちらは "○○振り" だ!」
 というノリです。

 「デブキャンのネタとして温存しといた方がよかったのでは?」 という気がするかもしれませんが、実際問題このテの動くデモは Webinar だとやりにくいのです (主にフレームレートや解像度の関係で)。エンバカさんのセミナーには "何故か高確率でデモの神様 (オチ担当) が降臨なさる" というのが最大の懸案事項ですけど (w

 デベロッパーキャンプでこのデモをやるつもりはありませんが、何かしらの説明画像で使われるかもしれませんね。

動画内で使われてるデモアプリの説明
 ざっくりした機能と操作方法は、

 こんな感じです。動画の尺が足りなかったので、キャプションが読めない箇所があるかもしれません。お手数ですが、一時停止したり巻き戻したりしてご確認下さい。


12/02/28

21th デベロッパーキャンプ の資料作成とか
 何とか終わりました。後は...なんとかなるだろう (w

       *'``・* 。
       |     `*。
      ,。∩      *  もうどうにでもな~れ 
     + (´・ω・`) *。+゚
     `*。 ヽ、  つ *゚*
      `・+。*・' ゚⊃ +゚
      ☆   ∪~ 。*゚
       `・+。*・ ゚ 

 ...ウソです。どうにかします。

Firebird の Returning が返す値を IBX で処理するには?
 Firebird は Insert 文でジェネレータを使った場合、そのジェネレータの値を RETURNING で取得できます。これは Firebid の FAQ にも載っています ("How to get the last insert ID?")。

 「IBX ではこの RETURNING が返す値を処理できない」 と、あちこちで書かれているようですが...

「できるっつーのよ!」

 IBConsole のインタラクティブ SQL で試してみるとちゃんと RETURNING の値が取れる事を確認できると思います...つまり、IBX でも RETURNING を処理できるのです。

with IBSQL1 do
  begin
    SQL.Clear;
    SQL.Add('INSERT INTO MST_TEST  ');
    SQL.Add('(                     ');
    SQL.Add('  ID,                 ');
    SQL.Add('  NAME                ');
    SQL.Add(')                     ');
    SQL.Add('VALUES                ');
    SQL.Add('(                     ');
    SQL.Add('  GEN_ID(GEN_TEST, 1),');
    SQL.Add('  :NAME               ');
    SQL.Add(')                     ');
    SQL.Add('RETURNING ID          ');

    ParamByName('NAME').AsString := 'John Smith';
    ExecQuery;

    iNewID := Fields[0].AsInteger; // FieldByName('ID').AsInteger でもいい
  end;

 Delphi のコードだとこんな感じです。TIBQuery ではなく、TIBSQL を使うのがミソです。


12/02/29

Rad Studio XE2 のサンプルプロジェクト
 以前、Team Japan ブログで紹介がありましたが、Rad Studio XE2 のサンプルプロジェクトは随時更新されています。

 Rad Studio XE2 の IDE から最新サンプルプロジェクトを入手するには、

  1. [ファイル | バージョン管理リポジトリから開く...]
  2. "リポジトリのURL" に https://radstudiodemos.svn.sourceforge.net/svnroot/radstudiodemos/branches/RadStudio_XE2/ を指定
  3. "コピー先" に C:\Users\Public\Documents\RAD Studio\9.0\Samples を指定
  4. [OK] ボタンを押す
 ...これだけです。

 サンプルプロジェクトには "COLLADA モデルビューア" とかがあります (モデルの FireMonkey 君も付いてます)。

 ただ、コレはコレで "困ったちゃん" なサンプルなのですが...それについてはまたの機会に。それから サンプルフォルダの "FireMonkey" 内に "FlagsPrinting" というプロジェクトがありますが、どうやらこれは "Rad Studio XE2 Update4" 用のようです。Update3 では恐らくコンパイルが通りません。サンプルだけフラゲしても嬉しくないなぁ...orz

 iOS 用のサンプルが増えていますが、これにはちょっと異議があります。今回の XE2 は C++Builder で iOS アプリを作れないのですから、現時点では iOS に注力すべきではないと思います...気持ちは解らなくもないですけれど。FPC をなくして、Delphi / C++Builder 双方で iOS 開発ができるようになってからやるべきではないでしょうか?

 正直、「そんな暇があるのなら、Windows の Delphi 用ヘッダファイルを拡充してくれよ」 と言いたくなります。

Rad Studio XE2 Update 4
 リリースされました...Update 3 でコンパイルできないサンプルが SVN に上がっていたのはそういう事ですか...orz

 今回のアップデートは、既存の XE2 を一旦アンインストールしてからの再インストールとなります。

Delphi XE2 Update 4 および C++Builder XE2 Update 4 は、完全なインライン アップデートであり、
既存の RAD Studio 製品をアンインストールしてから更新プログラムをインストールする必要があります。 

 ご注意を!

Update 4 で変更になったトコ (但し、バグ Fix リストを除く)
 えー...どうしてくれようか。

 これだけでも大問題だな。つまり、Update 3 以前に作ったものを Update 4 に持ってくると正しく描画されないという事だ。

 平行光源の中心が明るいのは、Specular がデフォルトで ON になったからのようで、反射色を Material.Specular、反射の範囲を Material.Shinness で変えるようになったらしい。つまり、Update 3 までは Specular は効いていなかったという事になる。

 座標軸の件は、例えば 地球儀"正面から見て北極を上にするために、X 軸を 90°傾けている" が、Upadate 4 では最初から北極が上になっている。

 いつぞやの [3D Shape] デモ と見比べてみて欲しい。さて、例の AA をもう一度貼るとするか。

       *'``・* 。
       |     `*。
      ,。∩      *  もうどうにでもな~れ 
     + (´・ω・`) *。+゚
     `*。 ヽ、  つ *゚*
      `・+。*・' ゚⊃ +゚
      ☆   ∪~ 。*゚
       `・+。*・ ゚ 

 デブキャン資料は大幅な加筆訂正を行うか、喋りで全部補うかの二択だな...orz


 BACK   古いのを読む   新しいのを読む