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

Q&A集[?]

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

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

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

質問コーナー

サイト内検索

分類メニュー

関連サイト


本日:4
昨日:0
総数:4550
現在:3


日本語のエイリアス使用はできないでしょうか?

ページOpenOffice.org FAQの登録ページ
投稿者はつぞ
分類
edit/refer
優先順位
edit/refer
状態
edit/refer
カテゴリー
edit/refer
投稿日2009-11-20 18:58:02 (金)
OSXp
依存するページ
バージョン
edit/refer

メッセージ

回答ページでは行末に「~」を付加する必要はありません

はじめまして。今までOpenOfficeにデータベースツールがあることを知らず、 BASEの存在を知り、iSeries(AS400)のデータベースのフロントエンドとして 照会ツールを作ろうと思っています。

ADOで接続してテーブルが参照できるところまでは出来たのですが、 クエリーを定義して、エンドユーザーに検索条件を入れさせてデータ照会をさせたい のですが、エイリアスに日本語名を入れることができません。

フォームを一つ一つ作るのも手間なので、クエリーを使用したいのですが、 何か方法はないでしょうか? よろしくお願い申し上げます。


エイリアスについて

M.Kamataki (2009-11-20 21:02:47 (金))

クエリーデザインのエイリアス欄のことでしょうか。faq/3/199「テーブルのレコード内で計算は?」のコメント「サンプル」で紹介した画像 faq3_199_01.png をご覧ください。フィールドの計算式の替わりに日本語のエイリアスを使っています。

ただ、2点、気になります。

>クエリーを定義して、エンドユーザーに検索条件を入れさせてデータ照会をさせたい

どのようなクエリーを作成されたのでしょうか。検索条件ということはパラメータクエリーでしょうか。

もう1点はこちら。

>iSeries(AS400)のデータベースのフロントエンドとして

標準で利用できるHSQLDBで操作した場合も同じでしょうか。

なお、パラメータクエリーでは、「()」など使えない記号があったりします。そのせいでしょうか。エラーが表示されている場合は、そのメッセージ内容をご報告してください。メッセージで想像できる場合もあります。

p.s.http://oooug.jp/faq/index.php?faq/5 ページの一覧にタイトルのないページが表示されていたので、重複質問はページごと削除しました。

re:エイリアスについて

はつぞ (2009-11-24 10:50:14 (火))

回答有難うございます。

>どのようなクエリーを作成されたのでしょうか。検索条件ということはパラメータクエリーでしょうか。

パラメータクエリーは使っていません。
当面はクエリーに直接条件を入れられる程度しか考えていません。

>標準で利用できるHSQLDBで操作した場合も同じでしょうか。

標準のデータベースを作ろうと思い、テーブルの定義をウィザードを使わずに適当な列名を入れて行ったのですが
「テーブルデザインの保存中にエラーが発生しました。要求された名前又は序数に対応する項目がコレクションで見つかりません」と出てきます。
もしかすると、ACCESSと同じという思い込みで作っていて、根本的な作り方が間違っているのかもしれません。

>なお、パラメータクエリーでは、「()」など使えない記号があったりします。そのせいでしょうか。エラーが表示されている場合は、そのメッセージ内容をご報告してください。メッセージで想像できる場合もあります。

DB2のテーブルを接続して、クエリーを保管しようとした場合、以下のエラーが出て保存できません。
「データ内容が読み込めませんでした。
SQL0105:混合、図形、またはUTF-8ストリング定数は正しくありません。
原因:X'0E'を開始する値で正しくない混合、図形、またはUTF-8ストリング定数が見つかりました。(以下略)」
エイリアスを入れない、もしくは半角英数で定義すると正常に保存でき、動作するのでクエリー自体は間違っていないと思います。

文字コードの不一致かも

M.Kamataki (2009-11-24 14:57:15 (火))

まず、「クエリーデザインのエイリアス欄」でいいんですよね。

ところで、下記ページによるとWindows(SJIS)でクライアントがUTF-8だとDB2で文字コードの不整合が起きるようです。BaseはUTF-8です。

DB2クライアントの問題かな?
http://d.hatena.ne.jp/Tambourine/20080510/1210383878

「X'0E'を開始する値」というメッセージもそれっぽいです。ちなみにエラーは、DB2からのメッセージです。DB2のマニュアルなどを調べると良いかもしれません。残念ながら、わたしはDB2ユーザーでないので、この先の調査は難しいですね。

さて、ADOではなくJDBCで接続してみるとどうなるでしょうか。上記の文字コードの問題は起きないような気がします。OpenOffice.orgユーザーのJDBCドライバでのDB2との接続実績はあるようです。以下参照。(c32さんは、OpenOffice.org Users Group SNSのお知り合い)

OOo 2.0 のデータベース機能を試してみるテスト(その3、DB2 UDB編)
http://c32.no-ip.com/diary/?200511a&to=200511031#200511031

なお、標準で利用できるHSQLDBのサンプルが下記からダウンロードできます。パラメータクエリーのサンプルもあります。こちらのテーブルを使って、クエリーデザインのエイリアス欄の日本語設定が可能かどうか、ご確認ください。

http://oooug.jp/faq/index.php?plugin=attach&pcmd=open&file=business_sample1.odb&refer=faq%2F4%2F862

無題

ike@九州 (2009-11-24 17:45:56 (火))

参考ページがありました
http://db2.jugem.cc/?eid=858

抜粋
クライアント環境のコードページはDB2クライアントによって自動判別されますが、基本的にOSの設定を継承します〜

クライアントがJavaの場合は(JDBCドライバを使用している場合は)クライアントOSに関係なく、クライアントの文字コードはUTF-8と認識されます。

JDBCを使ってみました

はつぞ (2009-11-25 19:32:06 (水))

アドバイスありがとうございます。

JDBCドライバを使って接続してみました。
http://c32.no-ip.com/diary/?200511a&to=200511031#200511031
のやり方とは違いますが、以前Windowsサーバー上のWebアプリを作ったときにAS400を繋いだ実績のあるjt400.jarというドライバです。

結果としては、
同様に接続でき、日本語を含む列も正常に表示でき、クエリーデザイン上で日本語を含む値を選択条件として入れてみても正常に表示できます。
ただし、エイリアスとして日本語を入れるとNGです。
エラーメッセージは、前回と少し異なりますが、マニュアル上からは理由が判りません。

データ内容が読み込めませんでした。
[SQL0113]名前"あ"を使用することはできない。

教えて頂いたサンプルのデータベースを使って日本語のエイリアスを入れてみましたが、正常に入力できます。

AS400はODBCを使っても持っている日本語の列名を持ってくることができないようです。
JDBCドライバの仕様上駄目なのかもしれません。

DB2 自体の仕様のようですね

ike@九州 (2009-11-26 09:38:49 (木))

DB2のバージョンは違うと思いますが

http://www.iforum.ne.jp/article.php/20090331022947454/print

以下の記述がありました
DB2 for IBM i ではテーブル名やカラム名などに日本語/漢字を使用することはできませんので、別名も同様にできません。

DB2 全般においての仕様なのでしょうね

お名前:
題名: