データ型日付[date]が変更される

baseでデータ型を日付[DATE]に指定しyyyy-mm-ddで保存。数回そのテーブルを使用するとデータ型が月日 に変更されてしまいます。何回修正しても同じことが繰り返されます。対処方法はあるでしょうか?それともバグでしょうか?

1 Like

まず症状についてお尋ねします
「データ型が月日に変更されてしまいます」とはフォーム上での見かけではなく、テーブル内のデータが 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使用)

1 Like

メール、ありがとうございます。

お尋ねの件ですが、わかる範囲で答えさせていただきます。

テーブル内のデータが 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上 に書き込んで下さいね。

2 Likes