5月15日、無料のNoSQL DBMS GlobalsDB 2012.2の新しいバージョンがリリースされました。
新機能多くのWindows用
Node.JS APIインターフェースで期待され、すぐにWindows 64ビット用に追加されました。
小さな追加が実装され、いくつかのバグが修正されました。
これと残りについて
。
英語版のGlobalsDB 2012.2のリリースノートの完全版は
こちらです。
GlobalsDB Node.JS API
Windows用のNode.js
このバージョンでは、Windows用のNode.jsのサポートが追加されます。 このAPIは、node.js 0.6xバージョンファミリで動作します。Nodejs APIドキュメントは
こちらから入手でき
ます 。
Windowsの拡張機能はcache061.node(cache061_node.dll)と呼ばれます。 後方互換性のために、モジュールの名前をcache.nodeに変更し、次のようにjavascriptに含めることができます。
var globals = require ('cache');
Windows 64ビットのサポート
node.jsバージョン0.6.13x64の64ビットバージョンのWindowsのサポートも実装されています。
node.js 0.7.xのバージョンファミリは現在サポートされていません。 このブランチnode.jsの安定バージョンはまだリリースされていません
Get()メソッドは、「undefined」ノードに対してエラーではなく空の文字列を返します
このバージョンでは、未定義ノードの場合、Get()は「未定義」エラーをスローする代わりに空の文字列を返します。
それでも、JSONを使用する場合(推奨)、どのノードに実際に値がないか、および値がどこにあるか(空の文字列であっても)を判別できます。 これは、定義されたキーによって決定できます。
値を持つノード:
{ "ok" 1, "global": "Customer", "subscripts": [1, "name"], "data": "InterSystems", "defined": 1 }
ノード値:
{ "ok" 1, "global": "Customer", "subscripts": [1, "first-name"], "data": "", "defined": 0 }
Nodes.JSメソッドpreviouse_node()でのGlobals $ Query()機能の実装
このバージョンでは、GlobalsDB $ Query()関数の動作はnode.js previouse_node()メソッドに実装されています。
このメソッドは、現在のレベルでノードがなくなった場合、現在のレベルまたは親でノードのソートシーケンスの前のノードを返します。 このメソッドは、グローバルの名前、ノードの完全なリンク、および値を返します。
次のデータをグローバルで定義してみましょう:
company[1]="InterSystems" company[1, "address", "city"]="Cambridge" company[1, "address", "state"]="MA" company[1, "address", "country"]="USA" company[1, "dateOfIncorporation"]="April 1976"
同期コール:
署名
var result = myData.previous_node({ global: 'myGlobal' [, subscripts: [sub(1) ,...,sub(N) ]] } );
例1
var result = myData.previous_node({ global: 'company', subscripts: [2] } ); console.log('\n'); console.log('previous_node(): ' + JSON.stringify(result, null, '\t'));
結果:
previous_node(): {
ok: 1,
global: "company",
subscripts: ["dateOfIncorporation"],
defined: 1,
data: "April 1976"
}
例2
var result = myData.previous_node({ global: 'company', subscripts: [1, 'address', 'country'] } ); console.log('\n'); console.log('previous_node(): ' + JSON.stringify(result, null, '\t'));
結果
previous_node(): {
ok: 1,
global: "company",
subscripts: [1, "address", "city"],
defined: 1,
data: "Cambridge"
}
都市ノードはソート順序の前にあるため、呼び出しの結果は正確に都市ノードになることに注意してください。
非同期呼び出し
署名
myData.previous_node({ global: 'myGlobal' [, subscripts: [sub(1),...,sub(N)]] }, function(error, result) { if (!error) {
例1
myData.previous_node({ global: 'company', subscripts: [2] }, function(error, result) { if (!error) {
結果
previous_node(): {
ok: 1,
global: "company",
subscripts: ["dateOfIncorporation"],
defined: 1,
data: "April 1976"
}
例2
myData.previous_node({ global: 'company', subscripts: [1, 'address', 'country']}, function(error, result) { if (!error) {
結果:
previous_node(): {
ok: 1,
global: "company",
subscripts: [1, "address", "state"],
defined: 1,
data: "MA"
}
increment()メソッドで「異常」を解決
increment()メソッドは、JSON呼び出しを使用するときにincrementプロパティを追加することで異常を修正しました。
JSONを使用してincrement()を呼び出さない場合、メソッドの最後の引数はインクリメント値として解釈されます。ただし、グローバル名のみが渡される場合を除きます。この場合、インクリメントは1になります。
JSONを使用してインクリメント()にパラメーターを渡す場合、インクリメント値はincrementプロパティから取得されます。設定されていない場合は1になります。
同期操作
増分を明示的に指定する
var result = myData.increment(globalName [,sub(1),...,sub(N)], increment);
この場合、増分が必要です。
例
var result = myData.increment('company','counter',1); console.log('\n'); console.log('increment(): ' + result);
暗黙的な表示
var result = myData.increment({ global: 'myGlobal' [, subscripts: [sub(1) ,...,sub(N) ]][, increment: incVal] } );
増分-ここでは、正または負の数値を指定できます。これにより、ノード値を増減できます(デフォルト= 1)。
例:
var result = myData.increment({ global: 'company', subscripts: ['counter'], increment: 1 } ); console.log('\n'); console.log('increment(): ' + JSON.stringify(result, null, '\t'));
結果:
increment(): {
ok: 1,
global: "company",
subscripts: [
"counter"
],
data: "totVal"
}
totVal =呼び出す前の値に等しいグローバルノード値+ increment
非同期呼び出し
署名
myData.increment({ global: 'myGlobal' [, subscripts: [sub(1) ,...,sub(N) ]], increment: incVal }, function(error, result) { if (!error) {
結果
{
ok: [0 | 1],
global: "global-name",
subscripts: [[list-of-subscripts-]],
data: "totVal"
}
例:
myData.increment({ global: 'company', subscripts: ['counter'], increment: 1 }, function(error, result) { if (!error) {
結果
increment(): {
ok: 1,
global: "company",
subscripts: ["counter"],
data: "totVal"
}
マイナーな変更とバグ修正
1.非同期呼び出しglobal_directory()のエラーを処理するときのアクセス違反を修正しました。
2.グローバルは、open()メソッドへの複数の呼び出しで正しく動作します。
3.「プログラマー」接続モードが表示されます。 このモードでは、エラーの詳細情報が表示され(たとえば、ノードの上部に空の文字列を書き込もうとした場合)、エラーが発生しても接続はアクティブのままです。
グローバル+ .NETの変更
Visual Basicの例を追加
Visual Basicの例は、C#およびJavaの例の機能を繰り返します。
例はインストールディレクトリにあります。
<globals-root>/dev/dotnet/samples/globals/vb
ここでは、さまざまなプラットフォームおよびAPIのGlobalsの新しいバージョンをダウンロードできます。