カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

Honeycomb Cursor関連のエラー

SQLiteデータベースを扱うアプリをAndroid3.2搭載の端末に入れていてエラーが発生した。
詳細は省略しますが、以下のようなエラーが出ます。
RuntimeException: Unable to resume activity
IllegalStateException: trying to requery an already closed cursor

クエリを実行しようとしたが、カーソルが閉じているとエラーが出ています。
どうやらカーソルマネージャー機能がなくなったよう。

というわけで、マネージャーを使うのをやめ、クローズ処理をアクティビティのonDestroy()に集約。
これでエラーは解消された。

Android2.2、2.3では正常に動作するので、バージョン違いの互換性による問題のようです。
代わりのメソッドが用意されている場合もあるので、Reflectクラスを利用すれば互換性を持たせることは可能なようです。

参考?
http://d.hatena.ne.jp/ukiki999/20100524/p1

1,897 views

フォームのセレクトボックスを操作する

項目を追加する

document.form.SELECT_BOX.options[INDEX] = new Option(VALUE, TEXT);

項目を削除する

N番目の項目を削除する

SELECT_BOX.options[N] = null;

項目を全て削除する
※項目数は削除する毎に減少していくので、最後から順番に削除します。

var len;

with(document.form)
{
    len = SELECT_BOX.length;

    for(i = 0; i < len; i++)
    {
        SELECT_BOX.options[len - i] = null;
    }
}
1,446 views

指定したオブジェクトに対する処理をするwith

現在、with文は非推奨とされています。

Warning: 混乱させるバグや互換性問題の原因になり得るため、with 文の使用は推奨されません。

with文を使うことでスクリプトを省略することができます。

例として、以下のようなHTMLフォームがあったとします。

<form name="myForm" action="example.cgi" method="post">
	<input type="text" name="name" size="20" />
	<input type="submit" value="submit" />
</form>

フォームオブジェクトを引数として渡し、
スクリプトを省略します。

with(document.myForm)
{
	alert(name.text);
}
1,309 views

正規表現の最短一致

正規表現の文字列検索にて、最短一致を検索します。
デフォルトは最長一致ですが、量指定子("*"、"+"、"{}"等)の後に"?"を付けることで最短一致に変更できます。

Visual Basic

Dim regEx As Object
Dim Matches As Variant

'正規表現オブジェクト
Set regEx = CreateObject("VBScript.RegExp")

続きを読む…»

17,071 views

Shell起動したアプリケーションの終了を待つ

Dim oShell As Object, oExec As Object

'オブジェクト変数に参照をセットします
Set oShell = CreateObject("WScript.Shell")
Set oExec = oShell.Exec("C:\example.exe")

'処理完了を待機
Do Until oExec.Status: DoEvents: Loop

'戻り値をセット
If Not oExec.StdErr.AtEndOfStream Then
	ExecCommand = True
	sResult = oExec.StdErr.ReadAll
ElseIf Not oExec.StdOut.AtEndOfStream Then
	sResult = oExec.StdOut.ReadAll
End If

'オブジェクト変数の参照を解放
Set oExec = Nothing: Set oShell = Nothing

'結果を表示
MsgBox sResult
7,516 views