やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

Calc テーブルコントロール(ODBCは使えない)

 SQLite3のDBをODBCドライバ経由で使いたかったが、レコード挿入時にエラーが出て使えなかった。

成果物

前提

手順

  1. Baseでデータソースを作成する(DB・テーブル)
  2. Calcでテーブルコントロールを作成する
  3. Calcのテーブルコントロールでレコードを挿入してみるもエラー

1. Baseでデータソースを作成する(DB・テーブル)

 以下手順に従ってJapaneseNames.dbを作成する。

  • SQLite3のODBCドライバをインストールする

  • Calcを起動する

  • メニュー→挿入フォームコントロールテーブル・コントロール
  • UIの表示領域をドラッグ&ドロップで指定する
  • テーブル構成要素ウィザードが表示される

2. Calcでテーブルコントロールを作成する

  1. LibreOffice Calcを起動する
  2. メニュー→挿入フォームコントロールテーブル・コントロール
  3. UIの表示領域をドラッグ&ドロップで指定する
  4. テーブル構成要素ウィザードが表示される
  5. データソースからMyDbを選ぶ
  6. テーブル/クエリーからMyTableを選ぶ
  7. 次へボタンをクリックする
  8. =>>ボタンをクリックする
  9. 完了ボタンをクリックする

0 1 2 3

3. Calcのテーブルコントロールでレコードを挿入してみる

  1. フォームコントロールツールバーデザインモードをクリックしてOFFにする
  2. 列名や既存レコードが表示される
  3. 最終行をクリックする
  4. 適当に1レコード分のデータを入力する
  5. エラー。レコード挿入に失敗する
SQL ステータス: HY000
エラーコード: 1

[SQLite]no such table: /tmp/work/JapaneseNames.db.LastNames (1)

4 5 6 7

所感

 つまり以下でやったBaseの固有形式HSQLDBでしかテーブル・コントロールを使ってレコード編集できないというクソ仕様ってこと? 使えねー。元々あったSQLite3のDBが使いたかったのに……。

対象環境

$ uname -a
Linux raspberrypi 5.4.51-v7l+ #1333 SMP Mon Aug 10 16:51:40 BST 2020 armv7l GNU/Linux