コンテンツにスキップ
ブリッジ - MSSQL

ブリッジ - MSSQL

MSSQLブリッジの登録

MSSQLデータベースに接続するブリッジを登録します。

接続文字列はMSSQLの仕様に従います。

bridge add -t mssql  ms server=127.0.0.1:1433 user=sa pass=changeme database=master encrypt=disable

接続オプション

オプション別名説明
serverMSSQLサーバーのアドレスserver=127.0.0.1:1433
databaseデータベース名database=master
user iduser, user-idユーザー名user=sa
passwordpassユーザーのパスワードpassword=changeme
connection timeoutconnection-timeoutDB接続の待機時間(秒)connection-timeout=5
dial timeoutdial-timeoutTCPハンドシェイクのタイムアウト(秒)dial-timeout=3
app nameapp-nameアプリケーション名(既定値neo-bridge
encrypt暗号化モード(disabletruefalse(以下を参照)
  • encrypt
    • disable : クライアントとサーバー間のデータを暗号化しません。
    • false : ログインパケット以外のデータを暗号化しません。
    • true : クライアントとサーバー間のすべてのデータを暗号化します。
machbase-neo» bridge list;
╭────────┬──────────┬───────────────────────────────────────────────────────────╮
│ NAME   │ TYPE     │ CONNECTION                                                │
├────────┼──────────┼───────────────────────────────────────────────────────────┤
│ ms     │ mssql    │ server=127.0.0.1:1433 user=SA pass=secret database=master │
╰────────┴──────────┴───────────────────────────────────────────────────────────╯

接続テスト

machbase-neo» bridge test ms;
Test bridge ms connectivity... success 3.042458ms

テーブルの作成

machbase-neoシェルで以下のコマンドを実行し、msブリッジを介してms_exampleテーブルを作成します。

bridge exec ms CREATE TABLE ms_example(
    id         INT NOT NULL PRIMARY KEY,
    company    VARCHAR(50) UNIQUE NOT NULL,
    employee   INT,
    discount   REAL,
    pricePlan  NUMERIC(7,2),
    code       BINARY,
    valid      SMALLINT,
    memo       TEXT,
    created_on DATETIME NOT NULL,
    UNIQUE(company)
);
machbase-neo» bridge query ms select * from ms_example;
╭────┬─────────┬──────────┬──────────┬───────────┬──────┬───────┬──────┬────────────╮
│ ID │ COMPANY │ EMPLOYEE │ DISCOUNT │ PRICEPLAN │ CODE │ VALID │ MEMO │ CREATED_ON │
├────┼─────────┼──────────┼──────────┼───────────┼──────┼───────┼──────┼────────────┤
╰────┴─────────┴──────────┴──────────┴───────────┴──────┴───────┴──────┴────────────╯

TQLによるMSSQLへの書き込み

現在のJavaScriptランタイムでは、次の例を使用してください。

STRING(payload() ?? `{
  "id":1,
  "company": "acme",
  "employee": 10
}`)
SCRIPT({
  // JSONの入力文字列を解析し、現在時刻とともに出力
  const msg = JSON.parse($.values[0]);
  $.yield(msg.company, msg.employee, new Date());
})
INSERT(bridge("ms"), table("ms_example"), "id", "company", "employee", "created_on")
旧Tengoの例(現在のランタイムでは実行できません)
BYTES(payload() ?? `{
  "id":1,
  "company": "acme",
  "employee": 10
}`)
SCRIPT("tengo", {
  // 現在時刻を取得
  times := import("times")
  ts := times.now()
  // TQLコンテキストを取得
  ctx := import("context")
  val := ctx.value()
  // JSONを解析
  json := import("json")
  msg := json.decode(val[0])
  ctx.yield(msg.id, msg.company, msg.employee, ts)
})
INSERT(bridge("ms"), table("ms_example"), "id", "company", "employee", "created_on")
machbase-neo» bridge query ms select id, company, employee, created_on from ms_example;
╭────┬─────────┬──────────┬───────────────────────────────────╮
│ ID │ COMPANY │ EMPLOYEE │ CREATED_ON                        │
├────┼─────────┼──────────┼───────────────────────────────────┤
│  1 │ acme    │       10 │ 2023-08-11 20:55:49.527 +0900 KST │
╰────┴─────────┴──────────┴───────────────────────────────────╯

TQLによるMSSQLからの読み取り

SQL(bridge('ms'), "select * from ms_example")
CSV()
最終更新日