baseでデータ型を日付[DATE]に指定しyyyy-mm-ddで保存。数回そのテーブルを使用するとデータ型が月日 に変更されてしまいます。何回修正しても同じことが繰り返されます。対処方法はあるでしょうか?それともバグでしょうか?
まず症状についてお尋ねします
「データ型が月日に変更されてしまいます」とはフォーム上での見かけではなく、テーブル内のデータが yyyy-mm-dd 形式で登録したものが1月10日形式になるということでよろしいでしょうか?
当方、OS:Windows10home LibreOffuce:Ver6.2と7.2版のFirebirdとHSQLDBでテストしていますが、お尋ねになっているデータ型変更はフォームでもテーブルでも発生しませんでした。
「数回、そのテーブルを使用すると・・・・」とありますが、どのように使用すると発生すると思われますか?
よろしければ症状が発生するパソコンでご利用のOS(Windows・Linux・Macの種類とバージョン)とLibreofficeバージョンとBASEのデータベース区分(FireBirdなのかHSQLDBなのか?ODBC等によるMysqlやPostgreSQLなどの外部DB接続なのか?)を教えてくだされば何かお答えできるかもしれません。
また、BASEはJAVAを利用しますので利用されているJAVAの種類とバージョンもおねがいします。Open-JDKやAmazon Corretto等(当方はCorretto8使用)
メール、ありがとうございます。
お尋ねの件ですが、わかる範囲で答えさせていただきます。
テーブル内のデータが yyyy-mm-dd 形式で登録したものが1月10日形式になるということでよろしいでしょうか?
そのとおりです。
「数回、そのテーブルを使用すると・・・・」とありますが、どのように使用すると発生すると思われますか?
クエリーやフォームを開くと、初めは設定どおりyyy-mm-ddで表示されるのですが、
何回目かでは月日での表示となってしまいます。たまに、クエリーまたはフォームを1回開いた
だけでも月日になることもあります。
OS WIN10home(64bit)
libreoffice 7.2.5.2
データベース区分 ベースを起動したトップ画面の最下行に「HSQLDB(埋め込み)」と表示されます
JAVAの種類とバージョン よくわからないのですが、「設定」の「アプリ」ではJava8 update281
(64bit) 8.0.2810.9 となっています
情報不足があればまたご連絡いただけると幸いです。
お忙しいところありがとうございます。
BASE 初期設定の前にLibreOfficeのバージョンを再確認しましょう
メニューから ヘルプ→LibreOfficeについて を表示し
Version: 7.2.4.1 (x64) / LibreOffice Community → 64bitがインストールされている
Build ID: ID番号が記載されている
CPU threads: 4; OS: Windows 10.0 Build 19043; UI render: Skia/Raster; VCL: win
Locale: ja-JP (ja_JP); UI: ja-JP
Calc: threaded
64bitのLibreOffice
64bitのWindows10
64bitのJava
であることを再度確認してください
Javaについては以下のページのようにセットアップされているか確認ください。
https://www.officeisyours.com/entry/2019/04/22/093946
JavaはOpenJDKをお勧めしますが、OpenJDKにはインストーラーが無いので
インストーラーが付いたAmazon Corretto8とか11の利用が簡単です
また、個人的にはツール→オプション→詳細 画面下段にある「オプション機能」
・実験的な機能を有効にする
・マクロの記録を有効にする
にもチェックした状態で利用しています。
●対象の切り分け実施
BASEの問題なのか? HSQLDBの問題なのか?を切り分けたいので
埋込DBにFirebirdを利用してテーブル作成しても同様のトラブルが発生するか?を確認ください。
Firebirdでも発生する場合はLibreOfficeの再インストールが必要かもしれません。
連絡ありがとうございます。
libreoffice 7.2.5.2で、64bit
win10 も 64bit
java は おすすめの amazon corretto17 にしました。
オプション機能も2つ「有効」にしました。
今のところ、クエリーを何回か開いてもデータ型は正常に維持されています。
ただ、ユニオンクエリでは「月日」表示となります。
(テーブルのデータ型はyyy-mm-ddですが)
FIREBIRD埋め込みのDBですが、何回か開閉していますが
今のところデータ型の問題は発生していません。
HSQLDBで同じ現象が発生しましたら
メールを差し上げたいと思いますがよろしいですか?
HSQLDBでもユニオンクエリー以外は正常とのことですから、やはりJavaが怪しいですね
ユニオンQに効果あるか不明ですが、Corretto17にHSQLDBが対応していないかもしれませんので Coretto8か11を試す手もありますよ。
Firebirdは問題ないとのことでしたら、DBはFirebirdの利用をお勧めします。HSQLDBよりも安定していますしSQLも標準的でわかりやすいです(オートナンバー型指定やテーブルだけでなくビューも使えますしね)
ネット情報もHSQLDBよりもFirebirdの方が充実しています。
再度HSQLDBでエラーが発生した場合は皆がわかるよう、このask libreoffice上 に書き込んで下さいね。