machcli
machcliモジュールは、JSHアプリケーションからMachbaseデータベースを使用するクライアントAPIを提供します。
Client
データベースクライアントを作成します。
構文
new Client(config)設定フィールド
host(既定値:127.0.0.1)port(既定値:5656)user(既定値:sys)password(既定値:manager)alternativeHost(省略可能)alternativePort(省略可能)database(省略可能): 複数データベース環境で接続する対象データベース(別名:db) Since v8.7.0
使用例
| |
複数データベースの例
クライアントの作成時にdatabaseを指定すると、接続する対象データベースを選択できます。dbはdatabaseの別名です。
Since v8.7.0
| |
Client.connect()
接続を開き、Connectionオブジェクトを返します。
構文
connect()Client.close()
内部のデータベースクライアントを閉じます。
構文
close()Client.user()
設定したユーザー名を大文字で返します。
構文
user()Client.normalizeTableName()
テーブル名を[database, user, table]形式に正規化します。
構文
normalizeTableName(tableName)Client.tx()
Since v8.7.0プールから取得した接続でトランザクションを開始し、その中でfnを実行します。fnが正常に戻るとコミットし、例外をスローするとロールバックして例外を再スローします。fnにはそのトランザクションにバインドされたConnectionが渡されるため、このオブジェクトのquery()、queryRow()、exec()は同じトランザクション内で実行されます。
CREATE TABLEで作成した通常のトランザクションテーブルでのみ動作します。ログテーブル(CREATE LOG TABLE)とタグテーブル(CREATE TAG TABLE)はトランザクションに対応していません。tx()内でこれらのテーブルにexec()やquery()を実行すると、MACHCLI-ERR-2362などのエラーが発生します。構文
tx(fn)使用例
| |
Connection
Client.connect()が返す接続オブジェクトです。
Connection.query()
検索SQLを実行し、Rowsオブジェクトを返します。paramsには、?の位置パラメーター用の可変長引数を渡します。
または、:keyの名前付きパラメーター用に{ key: value, ... }オブジェクトを渡せます
Since v8.7.0
.
構文
query(sql[, ...params])使用例
| |
Connection.queryRow()
検索SQLを実行し、単一行のオブジェクトを返します。
返されるオブジェクトには、_ROWNUMと各列名がプロパティとして含まれます。
構文
queryRow(sql[, ...params])Connection.exec()
DDL/DMLを実行し、結果オブジェクトを返します。
返されるフィールド:
rowsAffectedmessage
構文
exec(sql[, ...params])Connection.explain()
実行計画の文字列を返します。
構文
explain(sql[, ...params])Connection.append()
一括挿入用のAppenderオブジェクトを作成します。
返されるAppenderは、append()、flush()、close()などのメソッドに対応しています。
構文
append(tableName)使用例
| |
Connection.tx()
Since v8.7.0この接続でトランザクションを開始し、その中でfnを実行します。コミット・ロールバックの動作はClient.tx()と同じです。Client.connect()が返した接続など、確保済みの接続でトランザクションを実行する場合に使用します。
CREATE TABLEで作成した通常のトランザクションテーブルでのみ動作します。ログテーブル(CREATE LOG TABLE)とタグテーブル(CREATE TAG TABLE)はトランザクションに対応していません。tx()内でこれらのテーブルにexec()やquery()を実行すると、MACHCLI-ERR-2362などのエラーが発生します。構文
tx(fn)使用例
| |
Connection.close()
接続を閉じます。
構文
close()Rows
Connection.query()が返す結果セットオブジェクトです。
Rows.message
クエリの実行結果メッセージです。
Rows.isFetchable()
行を取得できる結果かどうかを返します。
構文
isFetchable()Rows.next()
イテレーターの結果オブジェクトを返します。
- 行がある場合は
{ value: Row, done: false } - 完了した場合は
{ done: true }
構文
next()Rows.close()
結果セットを閉じます。
構文
close()Row
取得した行を表すオブジェクトです。
- 各列には、
row.COLUMN_NAMEでアクセスできます。 for...ofによる反復処理に対応しています。
queryDatabaseId()
マウントしたデータベースのバックアップ表領域IDを返します。
- 既定のDB(
''またはMACHBASEDB)では-1を返す - データベースが存在しない場合は、例外を発生させます。
構文
queryDatabaseId(conn, dbName)queryTableType()
正規化したテーブル名のトークンから、テーブル型コードを返します。
構文
queryTableType(conn, names)TableType
stringTableType()
テーブル型の定数と文字列変換関数です。
TableTypeの値
Log,Fixed,Volatile,Lookup,KeyValue,Tag
構文
stringTableType(type)TableFlag
stringTableFlag()
テーブルフラグの定数と文字列変換関数です。
TableFlagの値
None,Data,Rollup,Meta,Stat
構文
stringTableFlag(flag)stringTableDescription()
テーブルの型とフラグを組み合わせた説明文字列を返します。
構文
stringTableDescription(type, flag)ColumnType
stringColumnType()
列型の定数と文字列変換関数です。
主なColumnTypeの値
Short,UShort,Integer,UInteger,Long,ULongFloat,Double,Varchar,Text,Clob,Blob,BinaryDatetime,IPv4,IPv6,JSON
構文
stringColumnType(columnType)columnWidth()
列型の既定の表示幅を返します。
構文
columnWidth(columnType, length)ColumnFlag
stringColumnFlag()
列フラグの定数と文字列変換関数です。
ColumnFlagの値
TagNameBasetimeSummarizedMetaColumn
構文
stringColumnFlag(flag)