2011年12月17日土曜日

[VB.NET] 週番号から特定の曜日の日付を取得する

指定した年の週番号から、その週の特定の曜日の日付を取得します。
このコードでは第一週をその年の最初の月曜日から、としているため、
例えば2011年の第一週は1月3日からとなります。
2011年1月1,2日は2010年の最終週とみなされます。

''' <summary>
''' 指定した年、週番号の月曜日を取得
''' </summary>
''' <param name="year">年(yyyy)</param>
''' <param name="weekNum">週番号(1-53)</param>
''' <returns></returns>
''' <remarks></remarks>
Shared Function GetFirstDateOfWeek(ByVal year As Integer, ByVal weekNum As Integer) As DateTime
    '第一週をその年最初の月曜日からの週と設定
    Dim weekRule As CalendarWeekRule = CalendarWeekRule.FirstFullWeek
    Dim dtJan1 As DateTime = New DateTime(year, 1, 1)
    '指定した年の最初の月曜日を取得
    'この例では月曜日に固定しているが、DayOfWeek.Mondayを引数として受け取れば
    '任意の曜日の日付を取得できる
    Dim dtFirstMonday As DateTime = GetNearestDayOfWeek(dtJan1, DayOfWeek.Monday)
    Dim cal As Calendar = CultureInfo.CurrentCulture.Calendar
    Dim firstWeek As Integer = cal.GetWeekOfYear(dtJan1, weekRule, DayOfWeek.Monday)
    If firstWeek <= 1 Then
        weekNum -= 1
    End If
    Dim result As DateTime = dtFirstMonday.AddDays(weekNum * 7)
    Return result
End Function

''' <summary>
''' 指定した日付から直近(未来)の指定した曜日の日付を取得
''' </summary>
''' <param name="dtDate">日付</param>
''' <param name="desiredDayOfWeek">曜日</param>
''' <returns></returns>
''' <remarks></remarks>
Shared Function GetNearestDayOfWeek(ByVal dtDate As DateTime, ByVal desiredDayOfWeek As DayOfWeek) As DateTime
    Dim dayOfWeek As DayOfWeek = dtDate.DayOfWeek
    If dayOfWeek = desiredDayOfWeek Then
        Return dtDate
    Else
        Return dtDate.AddDays(((Integer.Parse(System.DayOfWeek.Saturday) - Integer.Parse(dtDate.DayOfWeek) + Integer.Parse(desiredDayOfWeek)) Mod 7) + 1)
    End If
End Function

使用方法はこんな感じです。

Dim year As Integer = 2011
Dim weekNum As Integer = 50
Dim dtMonday As DateTime = GetFirstDateOfWeek(weekYear, weekNum)

※「指定した日付から直近(未来)の指定した曜日の日付を取得する」メソッドに関しては、アジャイルプログラマの日常様のC# で指定した曜日の日を取得をもとに、VBに変換致しました。

2011年12月7日水曜日

[VB.NET] 最小化時に発生するイベント

ウィンドウ右上の最小化ボタンをクリックすると、「Resize」イベントが発生します。Resizeイベントを処理するメソッドの中で「Me.WindowState」を見ることで、最小化時の処理を行います。
こんな感じ

Private Sub Form1_Resize(sender As Object, e As System.EventArgs) Handles Me.Resize
    If Me.WindowState = FormWindowState.Minimized Then
        '最小化時に行う処理を記述
    End If
End Sub

2011年11月24日木曜日

Visual Studio 2010で.Net Framework 4.0 Fullを使う

Visual Studio 2010でデフォルトで使用されるのは、4.0のClient Profileです。
でもlog4netを使いたかったりすると、Full版が必要になります。(Client ProfileにはSystem.webが入っていません)
ちょっと検索をしてみると、

「プロジェクトのプロパティ」 → 「アプリケーション」タブに 「対象のフレームワーク」という項目がありそこから変更できる

っていうのを幾つか見つけられたのですが、プロパティを覗いてもそんな項目はみつかりません。
最初はVisual Studio 2010 Proのライセンスがうまく認識されていないのか、とか思ったのですが、そうではありませんでした。これ、C#とVBで設定項目の場所が違うのです。
C#だと 上記の場所で変更できるのですが、VBだと、

「プロジェクトのプロパティ」  → 「コンパイル」タブ → 「詳細コンパイルオプションにて変更できます。

2011年10月19日水曜日

[Github] 詰まったこと色々

Githubを利用していて詰まったことをまとめていきます。

  • 特定のコミットへのロールバックの仕方
    git reset --hard <desired commit id>
    git push -f
    

    commit idはgithub上のhistoryから確認できます。
    あるいは下記の方法で確認します
    git log
    

  • cloud9からgithubにプッシュ
    git add ./
    git commit -m "some comment"
    git push origin master
    

  • リモートをロールバック
    ロールバックしたいコミットのIDをgit logで取得し、下記のコマンドを実行
    git push -f origin <desired commit id>:master
    

2011年9月21日水曜日

Asus Transformer 3.1 日本版にカスタムROMを導入する

前回のポストでnvflashを利用したTransformerのバックアップを行いました。

今回は前回の内容を踏まえた上で、TransformerにカスタムROMを焼きます。
事前にrootを取得する必要はありません。

カスタムROMはPRIME! v1.9.1を選択しました。
このROMの特徴は下記のようなものです

  • Android 3.2

  • Root取得済み(superuser, busyboxインストール済み)

  • 起動時にzipalignを行う(apkファイルの最適化)

  • 電源オプション(電源OFF、再起動、リカバリ)

  • キーボードドック接続時に、通知領域にドックバッテリ残量が表示される

  • テキスト入力中に、ナビゲーションバーから別のキーボードに変更できる

  • 空きRAM容量が常時250-300MBくらいになる

  • etc...


詳しいことはこちらを参照してください。

なによりも魅力的なのは最新のAndroid 3.2を利用できることですね。

実際の手順は以下の通りです。

前提
バックアップ済み
作業用フォルダにnvflash.zipを解凍してある(前回のポスト参照のこと)

1. nvflash用のPRIME! v1.9.1ファイルを用意する
[ROM] PRIME! v1.9.1 | Latest Asus Build++ | HTJ85B.prime_epad-1.9.1-20110904
上記サイトから、nvflash用のROMファイルをダウンロードし、解凍します。
解凍してできたimgファイル3つをnvflash.exeと同じフォルダ(おそらくnvflashtf)にコピーします。

2. ROMを焼く
Transformerの電源を切り、ボリュームボタンの「+」を押しながらPCに接続します。
nvflash.exeと同じフォルダ内にあるdownload.batを実行すると、PRIMEの導入処理が開始されます。
このバッチファイルの実行前に、2番で用意したimgファイル3つがnvflash.exe、downlod.batがあるのと同一のフォルダ内にあることを確認してください。
この3つのimgファイルがないままdownload.batを実行すると綺麗な文鎮ができあがります。

処理が終わると再起動し、AndroidのWelcome画面が立ち上がります。
Google アカウントを設定しましょう。

3. 日本語キーボードレイアウトで使えるようにする。
PRIME!のインストールはこれで終了ですが、このままではキーボードが英字配列です。
日本語キーボードのレイアウトで使用するにはもうひと手間必要です。
[Info] Eee Pad Transformer - Japan version - FOTA 8.4.4.12
上記サイトの「Japanese keyboard layout」リンクをクリックし、JapaneseKeyboardLayout.zipをダウンロードします。
ダウンロードしたファイルを、解凍せずにMicroSDカードにコピー、Transformer本体にさします。
電源ボタンを押し、リカバリモードで再起動します。
CWMが起動するので、"install zip from sdcard" -> "choose zip from sdcard"と進み、先ほどコピーしたzipファイルを選択しインストールします。

以上でPRIMEでも日本語キーボードを日本語レイアウトで使えるようになります(注:設定画面上はUSキーボードのままです)。
ATOKで半角/全角キーが使えなかったり、という問題はありますが(Alt + Spaceで日本語切り替えできます)…

[update 20110929]
Transformer標準の日本語キーボード、FSKARENを含んだキーボードレイアウトzipファイルを利用すると、半角/全角キーによる日本語切り替えが行えます。
Atokを利用していない方はこちらもどうぞ。利用方法は上記キーボードレイアウトのみのzipファイルと同様です。(nepwkさん、ありがとうございます)
また、未確認ですが「日本語フルキーボード For Tablet」というアプリを利用すると、任意の物理キーに「半角/全角切り替え」を割り当てることができるようです。
[/update] 

Asus Transformer 3.1 日本版でバックアップを作成する

7月に購入したAsus Transformer。
2ヶ月ほど公式ROMで使って、結構満足しています。

しかし、公式の3.2がまだまだ遠そうなのでカスタムROMを導入してみることにしました。
今回はその前段としてバックアップ方法について紹介します。

※注意------------------------------------------------------------------------------------------------
本体シリアルナンバーの最初の三桁が「B70」以上の方はこの方法でバックアップが取れない可能性があります。
---------------------------------------------------------------------------------------------------------- 

環境Windows7 Home Premium

1. nvflashのダウンロード
[Tool] Nvflash unbricking released! にてWindows nvflashをクリックし、リンク先からnvflash.zipをダウンロードします。

2. 作業環境の準備
ダウンロードしたnvflash.zipを作業用フォルダに解凍します。
ここでは"tf101_work"とします。
[20110924 update]
あと、Android SDKのインストールと、Asus TransformerのADBドライバのインストールも行っておいてください。 私は別の作業で事前にインストールしてあったためわかりませんが、ADBドライバが必要かもしれません。
[/update]

3. バックアップ用バッチファイルの作成
tf101_workの直下に「backup.bat」というファイルを作成し、以下の内容をコピー&ペーストします。

cd %~dp0
cd nvflashtf

set yyyy=%date:~0,4%%date:~5,2%%date:~8,2% set time2=%time% set hhmmss=%time2:~0,2%%time2:~3,2%%time2:~6,2% set folname=..\backup\tf101- set BACKUP_DIR=%folname%%yyyy%-%hhmmss% md %BACKUP_DIR%
nvflash --bct transformer.bct --setbct --configfile flash.cfg --bl bootloader.bin --odmdata 0x300d8011 --sbk 0x1682CCD8 0x8A1A43EA 0xA532EEB6 0xECFE1D98 --sync nvflash --resume --getpartitiontable %BACKUP_DIR%\partitiontable.txt nvflash --resume --read 2 %BACKUP_DIR%\02_BCT_raw.img nvflash --resume --read 3 %BACKUP_DIR%\03_PT_raw.img nvflash --resume --read 4 %BACKUP_DIR%\04_BOOTL_raw.img nvflash --resume --read 5 %BACKUP_DIR%\05_RECOVERY_raw.img nvflash --resume --read 6 %BACKUP_DIR%\06_KERNEL_raw.img nvflash --resume --read 7 %BACKUP_DIR%\07_BAK_raw.img nvflash --resume --read 8 %BACKUP_DIR%\08_GP1_raw.img nvflash --resume --read 9 %BACKUP_DIR%\09_SYSTEM_raw.img nvflash --resume --read 10 %BACKUP_DIR%\10_CAC_raw.img nvflash --resume --read 11 %BACKUP_DIR%\11_MSC_raw.img nvflash --resume --read 12 %BACKUP_DIR%\12_USP_raw.img nvflash --resume --read 13 %BACKUP_DIR%\13_PER_raw.img nvflash --resume --read 14 %BACKUP_DIR%\14_YTU_raw.img nvflash --resume --read 16 %BACKUP_DIR%\16_GPT_raw.img
pause

4. バックアップの実行
まず、Transformerの電源を切り、ボリュームボタンの「+(上側のボタン)」を押しながら電源ボタンを押し、その状態のままPCに接続します。すると、新しくドライバのインストールが始まりますが、おそらく失敗します。
コントロールパネル>デバイスマネージャで「APX」を探し、ドライバの更新を行います。検索するフォルダには、「tf101_work\nvflashtf\usbdriver」を指定しましょう。
次に、作成したbackup.batを実行します。
バックアップが終了すると、 tf101_workフォルダーの直下に"backup\tf101-yyyyMMdd-HHmmss"という形式のフォルダが作成されています。
バックアップイメージはその中にあります。

2011年9月5日月曜日

[ASP.NET]StrConvでひらがな・半角カナ変換でエラーが出る 時の対処法

StrConvでひらがな・半角カナ変換をしようとしたところ、 開発環境では動いたのに、サーバーにのせたら下記のエラーが出てしまいました。

System.ArgumentException: This system does not contain support for the Japanese locale.

原因は読んでそのまま、OSが日本語をサポートしていないからです。
まずは.NET Frameworkの日本語language packがインストールされているか確認しましょう。
インストールされていなかったらインストールしてください。
language packがインストールされているのにひらがな・ 半角 カナ変換できないぞゴルァ! という時は、OSの言語が日本語になっていない可能性があります。
そんな時はOSの言語を日本語に設定するか、あるいはStrConvの第三引数に日本語LocaleID(1041)を指定します。

Dim strExample As String = "ほげほげ"
Dim strResult As string = ""
strResult = Strings.StrConv(strExample, VbStrConv.Katakana + VbStrConv.Narrow, 1041)
'--------------------------------
'結果;
'strResult = "ホゲホゲ"

後々のメンテナンスとかサーバが変わった時のことを考えると、LocaleIDを指定しておいた方がいいような気がします。

2011年7月11日月曜日

[jQuery Mobile] headerに3つ以上のボタンを表示する

jQuery Mobileでは、header部にボタン要素を記述すると、1つ目は左寄せ、2つ目は右寄せ、と自動でレイアウトしてくれます。
しかし、ただ3つ以上ボタンを入れようとしてもレイアウトが崩れてしまいます。

sample1

これを回避して3つ以上のボタンを一列に並べる方法を2つ紹介します。

  1. controlgroupを使う

表示したいボタンをcontrolgroupとして、ひとつにまとめます。

<div data-role="header" data-backbtn="false" data-theme="b">
  <a href="#beforepage" data-rel="back" data-icon="arrow-l" data-direction="reverse" data-theme="a">Back</a>
    <h1>Header</h1>
    <div data-role="controlgroup" data-type="horizontal" class="ui-btn-right" style="top: 0px;">
    <a href="#hoge" data-role="button" data-icon="grid" data-iconpos="notext" data-inline="true">Relation List</a>
    <a href="#" data-role="button" data-icon="search" data-iconpos="notext" data-inline="true">Search</a>
  </div>
</div>

sample2

このようにボタンを一列に並べることができます。しかし、controlgroupを指定したdivstyle="top: 0px"を指定し忘れると、controlgroup要素が下寄せになってしまうので注意が必要です。

  1. divで囲う

上記の方法だと、右寄せにしたボタンがひとまとまりになってしまいます。 しかし、それぞれ個別のボタンとして表示したい、ということもあるでしょう。 その場合はただdivで囲えばOKです。

<div data-role="header" data-backbtn="false" data-theme="b">
  <a href="#beforepage" data-rel="back" data-icon="arrow-l" data-direction="reverse" data-theme="a">Back</a>
  <h1>Header</h1>
  <div class="ui-btn-right">
    <a href="#hoge" data-role="button" data-icon="grid" data-iconpos="notext" data-inline="true">Relation List</a>
    <a href="#" data-role="button" data-icon="search" data-iconpos="notext" data-inline="true">Search</a>
  </div>
</div>

sample3

どちらの場合も、囲んだdivでひとまとまりと認識されるので、class="ui-btn-right"はdiv要素に記述してください。

2011年7月7日木曜日

[jQuery Mobile] input type="search"にキーボードイベントをバインドするには

jQuery Mobileで検索用入力エリアを作るには、

<input type="search">

を使います。これだけで、スマートフォンのネイティブアプリのようなスタイルを勝手に生成してくれます。

しかしこれだけだと、キーボードで入力しエンターキーを押しても検索を開始してくれません。
エンターキー押下時の処理が設定されていないからです。

ここで、エンターキー押下時の処理を追加するために下記のようなコードを書きます。
使用しているjQuery Mobileのバージョンは 1.0b1です。

<!-- html -->
<input type="search" id="searchinput">

/*--jQuery Mobile--*/
$("searchinput").keypress(function(e){
    if(e.keycode==13){
        //エンターキー押下時の処理
    }
}

はい。通常のjQueryではこれで動くのでしょうが、jQuery Mobileではこれだと動きません。
jquery.mobile-1.0b1.jsの3672行目あたりを見るとわかるのですが、type="search"の要素はページ生成時にjQuery Mobile側で動的にdiv要素で囲われています。
そして、原理はよくわかりません(知っている人教えてください)が、inputにイベントがバインドできなくなっているようです。
そのため、検索ボックスにイベントをバインドしたいときは、下記のように書きます。

$("div.ui-input-search").live("keypress", function(e){
    if(e.keycode == 13){
        //エンターキー押下時の処理
    }
}

動的に作成されるdivはui-input-searchクラスを持っているので、それを利用して指定しています。また、動的に生成されているdivですので、バインドにはlive()を利用する必要があります。

2011年6月24日金曜日

Eclipse 3.6 Helios で Flex Builder 3 plugin を使う

Flex Builder 3 pluginが公式に対応しているのはEclipse 3.4までです。
しかし、ちょっと作業が必要になりますが、Eclipse 3.6でもFlex Builder 3 pluginを利用する方法があります。
まあ、素直に最新版の Flash Builder 4を買ったほうがいい気もしますが、「どうしてもFlex Builder 3を使いたい!」という時のために、導入方法をまとめておきます。

1. Eclipse 3.6をインストール

何がなくてもまずはEclipse。これがなくてははじまりません。

2. Flex Builder 3 pluginのインストール

Eclipseは先ほどインストールした3.6を指定します。途中で「3.2~3.4じゃないから使えないかもよ?」とかそんなようなことを聞かれますが、構わずに進めましょう。

3. Eclipseの設定

Eclipseのインストールフォルダに行くと、「links」というフォルダが新しく作成されているはずです。 ここを開いてみると、「com.adobe.flexbuilder.feature.core.link」というファイルがあります。これは、Flex Builder 3 pluginへのリンクファイルです。
このファイルをテキストエディタで開いてみましょう。すると、 中にはFlex Builder 3 pluginのインストールフォルダのフルパスが書いてあります。
このフルパスの前に「path=」という記述はあるでしょうか? なかったら追加しておいてください。
私の場合は、

path=C:/Program Files/Adobe/Flex Builder 3 Plug-in

こんな感じになりました。
追記が終わったら、上書き保存してファイルを閉じてください。

4. Flex Builder 3 pluginにパッチをあてる

さて、このままEclipseを起動しても、Flex Builder 3 pluginを利用することはできます。しかし、おそらくビルドエラーが出てしまうはずです。
このエラーを回避するために、 Flex Builder 3 pluginにパッチをあてる必要があります。
まず、こちらのサイトで、「ProblemManager patch」をダウンロードしてください。

<Flex Builder 3 pluginのインストールフォルダ>/eclipse/plugins/com.adobe.flexbuilder.project_3.0.204732/zornproject.jar

をWinRAR等で開き、com/adobe/flexbuilder/project/compiler/internal/ProblemManager.classをダウンロードしたファイル内の同名のファイルで置き換えます。
この時、zornproject.jarを展開する必要はありません。ただWinRARで開き、該当のファイルを上書きしてください。よくわからずに展開→再圧縮を行うと、jarファイルとして認識しなくなる可能性があります。

以上で手順は終了です。Eclipseを念のため「-clean」で起動すると、Flex Builder 3 pluginが使えるようになっているはずです。

なお、すでにEclipse 3.4以下で Flex Builder 3 pluginを利用している場合は、手順3以降を行えば3.6で利用出来るようになります。再インストールは必要ありません。

2011年6月22日水曜日

[jQuery Mobile] beta 1でハマった点まとめ

jQuery MobileのBeta 1 (jquery.mobile-1.0b1.js) が公開されましたね。
レスポンシブ・レイアウトへの対応やアドレスバーが隠れるようになったり、結構すごいです。
私も早速自分の作っているサイトに適応してみたのですが、幾つかつまずいた点があったのでまとめてみます。

・ページがスマートフォンに最適化されない。

なぜかデスクトップのブラウザと同じように表示されます。ちょっと悩みましたが、公式デモページのソースに答えはありました。一行追加するだけで解消です。

<meta name="viewport" content="width=device-width, initial-scale=1">

レスポンシブ・レイアウトに対応したことと関係あるんですかねー

・ clickイベントが使えない

デスクトップのブラウザでは普通に動作するのですが、Androidで試したところ、clickイベントにバインドしたファンクションが動いてくれませんでした。
これの答えは公式ブログに書いてありました。 KEY CHANGESの項に、

「アドレスバー隠すためにfastclickっていうイベント作ったよ。このイベントのせいでもしかしたらclickイベント使えなくなるかもねー(超意訳)」

とかそんなことが書いてあります。
回避策としては2つあります。

1. clickイベントではなくvclickイベントにバインドする。


2. mobileinitイベント時に、useFastClick(false)を設定する。


ちなみに、2番だとアドレスバーが隠れなくなるようです。vclickイベントにバインドを変更するのが無難かなー。

2011/09/06 補足: jQuery Mobile beta 2ではfastclickが廃止され、clickイベントに戻ったようです。一部端末でfastclickイベントか二度検出されたり、という不具合があったようです。

・vclickイベントからイベント発生元オブジェクトを取得する方法がわからない

これ個人的にすごくハマった。
alpha 4 では、動的にリストを作成し、各li要素にclickイベントをバインドして、 イベントからクリックされたli要素を取得、ということをやっていました。
この時、

$(event.currentTarget).children("#hoge").text();

という形でli要素内の任意の子要素を取得していました。
ところが、beta 1 でclickイベントをvclickイベントに変更すると、上の方法ではクリックされたliを取得できませんでした。
公式ブログやらjQuery Mobileのソースやらを読んでみると、vclickはマウスのクリックイベントとタッチパネルデバイスのタップイベントやらを統合していい感じに処理してくれるカスタムイベントのようです。
で、取得したイベントの中の要素をここを参考にしてこんな感じで全部見てみました。

var props = new Array();
for (var key in event){
    props.push(key);
}
props.sort();
$("#msg").html(props.join("<br />")).css("text-align", "left");

上記のコードを利用して、イベント内の怪しそうな要素をかたっぱしから見ていった結果、

$(event.originalEvent.target.parentElement).find("hoge").text();

でクリックされたli要素内の任意の子孫要素を取得できました。
なんかもっとスマートなやり方がありそうな気もするんですけどねー。 

・検索ボックスにイベントをバインドできない。 


別のエントリにまとめました。

2011年4月14日木曜日

[Flex] ListなどのitemRendererをactionscriptから設定する

var itemRenderer:ClassFactory = new ClassFactory(View.SampleRenderer2);
this.sampleList.itemRenderer = itemRenderer;

こんな感じ。リストのデータプロバイダの内容かなにかで条件分岐すれば、動的にitemRendererを変更できるよ。

ちなみに、
sampleList.variableRowHeight = true;

と設定しておくと、itemRendererで設定した高さをListの行の高さとして使用できるよ。
言い換えると、使っているitemRendererに合わせて行の高さが自動で調整されるってこと。

2011年4月12日火曜日

2011年3月25日金曜日

PostgreSQLにCSVからデータ読込

PostgreSQL 8.4で確認

SQL SHELLから、以下のコマンドを実行する

COPY tablename 'C:/hoge/hogehoge.csv' WITH CSV;

ヘッダー付の場合はこんな感じ。

COPY tablename 'C:/hoge/hogehoge.csv' WITH CSV HEADER;

パスは"/"の代わりに"\\"でも大丈夫。二つ続けるのは一つだとエスケープされてしまうため。

ただ、エラーが出るのでパスの前に"E"を付けること。こんな感じ。

COPY tablename E'C:\\hoge\\hogehoge.csv' WITH CSV HEADER;

パスに日本語が入ってるとダメみたい。

あと、読込ファイルとDBの文字コードは予め同じものにしておくこと。

Edit: なんかSQL SHELLの文字コードも合わせておく必要があるみたい。SQL SHELL起動時に変更するか、以下のコマンドを実行する。

SET client_encoding='UTF8';

2011年3月18日金曜日

Seasar2+Flex+tomcatでSQL Server 2008に接続する

詰まったところだけ端的に。

sqljdbc4.jarの追加は忘れずに!

■s2jdbc.dicon
<components>
    <include path="jdbc.dicon"/>
    <include path="s2jdbc-internal.dicon"/>
    <component name="jdbcManager">
        <property name="maxRows">0</property>
        <property name="fetchSize">0</property>
        <property name="queryTimeout">0</property>
        <property name="dialect">mssql2005Dialect</property>
    </component>
</components>

■jdbc.dicon
<!-- for SQLServer -->
<component name="xaDataSource" class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
    <property name="driverClassName">
        "com.microsoft.sqlserver.jdbc.SQLServerDriver"
    </property>
    <property name="URL">
        "jdbc:sqlserver://localhost;instanceName=TEST;databasename=TESTDATABASE"
    </property>
    <property name="user">"user"</property>
    <property name="password">"pass"</property>
</component>
instanceNameとdatabasenameを設定し忘れてかなり時間食った…
参考: http://technet.microsoft.com/ja-jp/library/ms378428(SQL.90).aspx

2011年3月17日木曜日

Flex Builder 3 をJDK6で動かす

Flex Builder 3 は通常、C:\Program Files\Adobe\Flex Builder 3\jre 以下のJREで動いている。

でもこれだと、例えばMaven pluginを入れた時とかに

「JDKで動かさないと使えない機能があるよ!」

と怒られてしまう。

そこで、Flex Builder 3 を自分でインストールした別のJDKで動かしてみる。

FlexBuilder.ini(C:\Program Files\Adobe\Flex Builder 3\FlexBuilder.ini) に

-vm C:\Program Files\Java\jdk1.6.0_23\jre\bin\javaw.exe

を追加すれば動く、みたいな話もあったけどうまく行かなかったのでFlex Builder 3 のショートカットのリンク先を以下のように変えてみたらうまくいった。

"C:\Program Files\Adobe\Flex Builder 3\FlexBuilder.exe" -vm "C:\Program Files\Java\jdk1.6.0_23\jre\bin\javaw.exe"