「Web出版サイト」ベータ公開

Q&A集[?]

当サイトでのご質問の受付は終了しました

すべてのコンテンツを読み込み専用としたため、回答欄からも投稿できません

Apache OpenOffice/LibreOfficeのご質問はそれぞれのフォーラムへご投稿ください

質問コーナー

サイト内検索

分類メニュー

関連サイト


本日:1
昨日:4
総数:2776
現在:8


標準データベース(HSQLDB)のテーブルのフィールドの種類・属性を変更できない

メッセージ

自分で色々さわってみたのですが、インポートしたものでなく、BASEの新規作成で作ったテーブルでも、一旦作成したテーブルは、フィールド属性の変更ができないようなのです。仕様でしょうか? やりかたがあれば教えて下さい


フィールドの種類について

M.Kamataki (2006-10-07 10:44:17 (土))

フィールドの種類(画面表示にあわせます)の変更ができるかどうかは、Baseで使用するデータベースエンジンによります。
>BASEの新規作成で作ったテーブル
ということは、HSQLDBですね。どのデータベースエンジンを使っているかは、Baseのステータスバーを見ればわかります。「HSQLデータベースエンジン」とあれば、HSQLDBです。

OpenOffice.org 2.0.3の場合、HSQLDBのテーブルは下記画面のように変更できます。

  1. テーブルを選択して編集
    faq3_415_01.png
  2. フィールドの種類を変更し、保存
    faq3_415_02.png
  3. フィールドの種類が変更される
    faq3_415_03.png

ただし、これは2.0.3までで、2.0.4からは仕様が変わり、フィールドの種類は変更できなくなり、かわりにフィールドを削除して、追加する仕様に変わったようです。以下のように上記の3.以降が変わります。

  1. 警告のダイアログが表示され、[はい]を選ぶと
    faq3_415_04.png
  2. 変更したフィールドが削除され、新しいフィールドとして追加される
    faq3_415_05.png

たぶん、既存のフィールドがなくなるわけですから、この仕様変更には反対する方が多いと思います。しかし、フィールドの種類を変更することによって、テーブル内のデータが壊れる可能性もありますから、仕方のない変更かもしれません。

わたしは、フィールドの種類を変更するのではなく、より安全な手順として、テーブルのコピー&貼り付けによって、定義だけをコピーした新しいテーブルを作成し、そちらに旧テーブルからデータをコピーする方法を薦めます。こちらは、コピー&貼り付け後の[テーブルのコピー]ダイアログで、下の画面のように「データの追加」を選べばよいでしょう。
faq3_415_06.png

p.s.お使いのバージョンがわかりませんが、2.0.1までのバージョンでは不具合があるかもしれません。

質問1 バージョンを知る方法

3M (2006-10-11 15:15:30 (水))

自分のバージョンが分かりません。
購入したCD-ROM(OpenOffice.org日本ユーザー会のOOo2.0.0/OOo1.1.5)からインストールしました。
ヘルプ>バージョン情報から、Ctrl+s d t で見ましたら、
「680m3 build8968」と出て、バージョンの判断が私には分かりませんでした。教えて頂けるとありがたいです。

質問2 2.0.03でできないことあった

3M (2006-10-11 15:21:44 (水))

経緯をおはなしします。最初に質問した段階では、WEBからDLしたものを使っての話だったのです。その折、バージョンは「2.0.3」だったと確認した記憶があるのですが、その時に、
「フィールドの種類について」でM.Kamataki (2006-10-07 10:44:17 (土))様が教えて下さった方法でフィールドの更新ができませんでした。
それから後、アンインストールして、購入したCD-ROMからインストールしましたら、やはりフィールドの更新できず、なおかつバージョンも分からない、ということです。JAVAは導入してます。
よろしくお願い致します

Re: 質問1 バージョンを知る方法

M.Kamataki (2006-10-11 16:35:12 (水))

「680m3 build8968」ということは、バージョン2.0です。バージョンの調べ方は、FAQとなっています。「バージョン番号の調べ方」(faq/3/15)をご覧ください。

データベースをお使いになる場合は、できるだけユーザー会のWebサイトから最新版をダウンしてください。2.0は、その後のバージョンでテーブルが消えるという大きな影響のある不具合があるので、使うべきではありません。このあたりは、「OpenOffice.org 2.0.1インストール時の注意点」(faq/1/133)をご覧ください。

Re: 質問2 2.0.03でできないことあった

M.Kamataki (2006-10-11 16:40:21 (水))

Javaの問題でしたら、まずこちらもバージョンはできるだけ新しいものを導入してください。加えて、ツールメニューの[オプション]で表示されるダイアログの[OpenOffice.org]−[Java]の項目で、インストールされているJavaの先頭のラジオボタンに黒丸が入っているか確認してください。

上記の画面のスクリーンショットは、2.0.3で撮ったものですから、環境が整っていれば、2.0.3では可能なはずです。

やっぱり2.0.3でもできません

3M (2006-10-11 19:08:06 (水))

お手数おかけします。
2.0.0をアンインストールしてから、2.0.3をインストールしました(バージョンもしっかり確認)。
しかし、「フィールドの種類について」†M.Kamataki (2006-10-0710:44:17 (土))でお知らせ下さったようにできません。
JAVAは最新?の1.5.0_06がインストールされていることを確認しました。
勿論データは「埋め込みデータベース」「HSQLデータベースエンジン」であることは確認済みです。
■「フィールドの種類について」†M.Kamataki (2006-10-0710:44:17 (土))の、1.テーブルを選択して編集の手順が、私の理解しているものと違うのでしょうか? 私は、初期画面の「データベース」ペインで「テーブル」を選び、「テーブル」ペインに現れた既存のテーブル名を右クリックして選択できる「編集」を選んで開いた段階で、M.Kamatakiの画像と同じ画面(BASEテーブルデザイン)は出るのですが、下半分の「フィールドの属性」が全面的に灰色になって新たな入力ができない状況なのです。
■あるいは、新規作成した時の保存の仕方に何かあるのでしょうか?(プライマリーキーを作っても作らなくても同じ不具合になります。気になるのは、新規作成して、キーを作るか作らないか訊かれて選択し、保存した段階(ということになるのかな?)で、下半分の「フィールドの属性」が全面的に灰色になって新たな入力ができない状況になるということです。
お手数おかけしますが教えて頂けると幸いです

質問の補足

3M (2006-10-11 22:15:10 (水))

直上の質問の内容の補足です。文の最後のところの
「下半分の「フィールドの属性」が全面的に灰色になって新たな入力ができない状況になるということです。」は
正確には
「下半分の「フィールドの属性」が全面的に灰色になって(M.Kamataki さんのキャプチャー画面と同じような、ダイアログボックスやその説明が薄く見えるのだが、入力はできない状態で)新たな入力ができない状況になるということです。」

整理します

M.Kamataki (2006-10-12 11:20:45 (木))

当初の質問とずれてきていますので、ここでいったん整理しましょう。

まず、インポートしたテーブルのフィールドの種類・属性を変更できない問題とBaseの標準データベース(HSQLDB)のテーブルのフィールドの種類・属性を変更できない問題とは原因が別です。したがって、本来ならいったんクルーズして、新しい質問とすべきですが、インポートしたテーブルのフィールドの種類・属性を変更できない問題を「既知の問題」として理解していただければ、当ページそのものは、「Baseの標準データベース(HSQLDB)のテーブルのフィールドの種類・属性を変更できない問題」の回答ページとして、完了時に修正します。

長くなるので、次のサブジェクトに。

標準データベースでテーブルのフィールドの種類・属性が変更できない原因

M.Kamataki (2006-10-12 11:35:43 (木))

原因はいくつか考えられますので、アトランダムに上げてみます。

  • テーブルにプライマリキーが設定されていない
    →そもそもはプライマリキーが設定されていないとテーブルの保存ができないはずなのですが。
  • なぜか〜.odbファイルがリードオンリーになっている
    • 共有フォルダでHSQLDB形式の〜.odbファイルを利用すると、2つ目移行の接続からリードオンリーになります。
    • OSが認識できないフォルダツリーの深いところに〜.odbファイルを保存すると、リードオンリーになるかもしれません。
    • OpenOffice.orgが不具合を起こす名前で〜.odbファイルを作成すると、リードオンリーになるかもしれません。
    • ユーザーに〜.odbファイルへのアクセス権がないと、リードオンリーになるかもしれません。

などですね。いずれもお使いの環境に依存する問題なので、3Mさんに心当たりがないか、思い起こしていただくしかありません。

なお、もし心当たりがないなら、「OOoの画面や設定がおかしくなってしまいました。」(faq/1/202)もご覧ください。

解決しました

3M (2006-10-12 14:08:37 (木))

M.Kamataki さん。ありがとうございました。「標準データベースでテーブルのフィールドの種類・属性が変更できない原因」の4つの方法とも、私の場合は無効でした。
お知らせ頂いた、「OOoの画面や設定がおかしくなってしまいました。」(faq/1/202)を参照し、「Windows XP/2000では次のフォルダを削除します。この際、OpenOffice.orgはクイック起動を含め、すべて終了して作業してください。C:\Documents and Settings\(ユーザー名)\Application Data\OpenOffice.org2
の処置を試しましたら、フィールドの属性が書き換えできるようになりました。
Oooをインストールしたばっかりでも、そういうことがあるんですね。
本当に貴重な情報をありがとうございました!

原因は

M.Kamataki (2006-10-12 16:16:14 (木))

むしろ原因が気になってきました。OpenOffice.orgはアンインストールの際にC:\Documents and Settings\(ユーザー名)\Application Data\OpenOffice.org2を削除しません。原因としては、2.0のユーザー設定ファイル、もしくは1.1.xのユーザー設定ファイルが残っていたのが悪かったかもしれません。前者は十分にありえますが、後者は心当たりはあるでしょうか。

それと、「整理します」で書きましたが、当ページを修正して「完了」してよろしいでしょうか。また、何か問題があったら、新たに質問していただいてもかまいませんし。

むしろ…

3M (2006-10-12 16:56:56 (木))

2.0.0の時の設定ファイルが残っていた問題よりむしろ、2.0.0を入れる「前」に、1回目に2.0.3を入れた時に、EXCELのデータをインポートしようとした際の設定が変わって、それが残ったのではないかという気がします。
EXCELを入れようとしたとき、「データソース”データ名”への接続が確立できませんでした。外部データソースへ接続できませんでした。不明なエラーが発生しました。ドライバにトラブルのある可能性があります」と言われ、そのメッセージの書かれたダイアログボックスの「オプション」を押すと、「エラー」の項目として「SQL ステータス: S1000  外部データソースへ接続できませんでした。不明なエラーが発生しました。ドライバにトラブルがある可能性があります。」と言われました。
ところがさわっているうちになぜかインポートできてしまいました。そのあたりの経緯があやふやで、お役に立たない説明なのですが…。
何かのご参考になり、お役に立ちましたら幸いです。ご報告させていただきました。

完了して頂いて結構です

3M (2006-10-12 18:34:24 (木))

M.Kamataki さんが「原因は」でお尋ね下さった件です。完了にして頂いて結構です。あたらに質問させて頂いています

完了にします

M.Kamataki (2006-10-12 22:07:49 (木))

コメントいただきましたので、完了します。

なお、タイトルを「インポートしたテーブルの「フィールドの属性」が更新できない」から「標準データベース(HSQLDB)のテーブルのフィールドの種類・属性を変更できない」に変更、それにともない内容も一部修正しました。

お名前:
題名:


添付ファイル: filefaq3_415_06.png 717件 [詳細] filefaq3_415_05.png 824件 [詳細] filefaq3_415_04.png 740件 [詳細] filefaq3_415_03.png 863件 [詳細] filefaq3_415_02.png 772件 [詳細] filefaq3_415_01.png 790件 [詳細]