データ型と定数
DBProでは,下記の目次に示すデータ型のデータを表に格納することができます。数値関連データ型とは,数値型,整数型,実数型の三つです。
式中などで,各データ型の特定の値を指定するときは「定数」を用います。数値関連型に対する定数は,どれも算術定数として表現されます。ナル値は,データが未入力(空),不定,計算エラーなどを表わす特殊な値であって,どのデータ型にも共通の定数です。
表編集ウィンドウやカード編集ウィンドウでレコードの項目に値を入力するときは,定数としてではなく,より直感的で簡単な方法で入力することができます。
- 目次
- 文字列型と文字列定数
- 数値関連データ型と算術定数
- 日付型と日付定数
- 時刻型と時刻定数
- 年月間隔型と年月間隔定数
- 日時間隔型と日時間隔定数
- ファイル型
- キーワード定数
- ポインタ型
- ナル値
文字の並びを文字列型データとして扱います。
- 文字列型データに含めることができる文字は,漢字,仮名などの全角文字,英字,数字などの半角文字,および改行です。DBProで使える文字
- DBProでは文字列型データの長さがあらかじめ決められていないので,入力・加工の際にその場に応じて扱えます(可変長文字列と呼びます)。
- 注:
- 文字列の最大長は,V3 までは 2000文字でしたが,V4 からは動作環境の資源が許す限り制限がありません。ただし,極端に長い文字列が入力されると,長さに応じて動作速度が遅くなりますのでご注意ください。
- データベース中に文字列型データを格納するときは,表に文字列型項目を定義します。表:項目属性
- 文字列型項目に文字列を入力したり,訂正したりするときは,キーボードでその文字列を入力します。クリップボードから貼り付けることもできます。データ編集の基礎:文字列の入力と編集
- 文字列型データに対して,複数の文字列を連結したり,組込み関数によって一部の文字列を取り出したりなどの操作を行ない,新たな文字列を生成することができます。式:文字列式
- 文字列式中で特定の文字列を表現するときは文字列定数として表現します。文字列定数
- 文字列型データは,文字符号で大小比較したり,五十音順/ABC順で前後関係を比較することができます。式:比較式,#辞書順比較,#基本つづり比較
- DBProで使える文字は,漢字符号系文字(全角文字)と8単位符号系文字(半角文字),それに改行コードです。
<文字> | ::= | <漢字符号系文字> |
| | | <8単位符号系文字> |
| | | <改行> |
<漢字符号系文字> | ::= | (JIS X 0208 区点 1-1 〜 94-94 の文字) |
<8単位符号系文字> | ::= | (JIS X 0201 位置 2/0〜7/14 および 10/0〜13/15 の文字) |
- <漢字符号系文字> は,通常,日本工業規格(JIS)X 0208 で規定されている日本語の文字を表現します。お使いのパソコンや Windows によって拡張されている文字がある場合,JIS規格の区点で規定されている範囲内の文字符号であれば入力できます。入力可能な文字の詳細は,日本工業規格,お使いの Windows のマニュアル,パソコンのマニュアルなどを参照してください。
- <8単位符号系文字> は,通常 JIS X 0201 で規定されている半角アルファベット,半角片仮名などの図形キャラクタを表現します。扱える範囲は,構文に示したとおりです。
- DBProでは,それぞれの Windows で入力される文字(パソコンメーカーや利用者が設定した環境,特に使用しているフォントによって状況が大きく変わり得ます)を内部符号として扱っているだけですので,その文字符号がどのような字形で表示されるかなどについては関知されません。構文に示した範囲の文字符号であるかどうかだけがチェックされます。
- 通常,DBProでは,漢字符号系文字のことを全角文字,8単位符号系文字のことを半角文字と呼びます。Windowsではこれらの文字が必ずしも全角の幅や半角の幅で表示されるわけではありませんが,これまでの慣習に従ってこう呼んでいます。
- 文字列定数は,式中に書いて文字列型の値を表わします。
- 文字列定数は,DBProで使える任意の文字の並びを引用符 '(アポストロフィ)または逆引用符 `(バッククォート)でくくって表わします。文字列定数をくくる引用符は,半角(8単位符号系文字)でも全角(漢字符号系文字)でも構いませんが,逆引用符は半角でなければなりません。
- 文字列定数は,次の形式をもちます。
<文字列定数> | ::= | ' [ <漢字符号系文字> | <8単位符号系文字> | <エスケープ文字> ]... ' |
| | | ` [ <漢字符号系文字> | <8単位符号系文字> | <エスケープ文字> ]... ` |
<エスケープ文字> | ::= | !n | !t | !' | !’ | !! | !`
(エスケープ文字は半角/全角が区別されます。) |
- <エスケープ文字> は,それぞれ次の意味をもちます。
!n | 改行を示します。! および n ともに半角でなければなりません。 |
!t | タブを示します。! および t ともに半角でなければなりません。タブは DPL中などの文字列定数に書けるだけであり,表ファイルの項目値としてタブを含めることはできません。項目にタブを入力しようとすると,そのタブは半角空白に置き換えられますので注意してください。 |
!' | 1文字の引用符を示します。! は半角でなければなりません。 |
!! | 1文字の半角感嘆符を示します。全角の感嘆符は!だけでそのまま表現できます。 |
!` | 1文字の逆引用符を示します。 |
- 文字列定数の例
’漢字符号系,普通は全角日本語文字の定数’ |
'8 bit code string constant. カタカナヲ フクム.' |
'途中に改行 !n を含む文字列定数' |
'途中に引用符 '' (二重引用符ではない) や半角感嘆符 !! を含む定数' |
`逆引用符でくくられた定数` |
`逆引用符で始まり引用符で終わる正しくない例' |
数値関連データ型には,数値型(十進数型),整数型,実数型の三つのデータ型があります。
- 数値型は,有効桁数20桁,絶対値 10-127 〜 10127 の十進数値を扱います。
- 整数型は,-2,147,483,647 〜 2,147,483,647 の整数値を扱います。
- 実数型は,有効桁数およそ15桁,絶対値およそ 4.19×10-307 〜 1.67×10308 の数値を扱います。
- 数値関連型(数値型,整数型,実数型)の特定の値は,算術定数で表現します。算術定数
- データベース中に数値を格納するときは,表ファイルに数値関連型の項目を定義します。表:項目属性
- 数値型,整数型,実数型の項目に値を入力するときも,算術定数と同じ形で入力できます。金額を示すための通貨記号(¥,$)やコンマを含む形式,小数点以下の値を%で表現する形式などで入力することもできます。数値の入力
- 数値関連データの四則演算,組込み関数による演算などは,算術式で表現します。算術式中には数値型,整数型,実数型を混在させることができます。式:算術式,数学関数
- 数値の演算中にゼロ除算やオーバーフローが検出されると,エラー数値と呼ぶ特殊な値が項目に格納されることがあります。エラー数値
算術定数は,数値型(十進数型),整数型または実数型の値を表わします。
算術定数においてはこれらのデータ型の区別はなく,これら三つのデータ型のいずれの定数としても算術定数を記述します。算術定数は,それが書かれている式の中で,必要となる任意の型に変換されます。必要とされる型の最大値や最小値を超える算術定数を記述するとエラーまたは式の結果が不定になります。
- 形式
-
<算術定数> | ::= | <十進数定数> |
| | | <十六進数定数> |
| | | <八進数定数> |
| | | <二進数定数> |
| | | <数値定数> |
<十進数定数> | ::= | <真数定数> |
| | | <概数定数> |
<真数定数> | ::= | <数字>... [ . [ <数字>... ] ] |
| | | . <数字>... |
<概数定数> | ::= | <仮数部> E <指数部> |
<仮数部> | ::= | <真数定数> |
<指数部> | ::= | [ + | - ] <数字>... |
<数字> | ::= | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
<十六進数定数> | ::= | X ' <十六進数字>... ' |
<十六進数字> | ::= | <数字> | A | B | C | D | E | F (小文字でもよい) |
<八進数定数> | ::= | O ' <八進数字>... ' |
<八進数字> | ::= | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
<二進数定数> | ::= | B ' <二進数字>... ' |
<二進数字> | ::= | 0 | 1 |
<数値定数> | ::= | NUM ' <数値文字列> ' |
| | | 数値 ' <数値文字列> ' |
- 各定数の意味
- 真数定数
- 真数定数は,普段もっともよく使う形の算術定数です。整数部と,必要ならば小数部とを小数点で区切って書きます。
145 |
71.36 |
.25 | 0.25 を表わします。 |
- 概数定数
- 概数定数は,絶対値が非常に大きな数値や小さな数値を表現するために導入されている形式であり,10のべき乗を利用して表現します。普通は実数型の定数を表現するときに用います。日常的な大きさの数値を表現することもできます。
<仮数部> は,表現しようとする数値の有効桁を表わします。<指数部> は,表現しようとする数値の大きさを 10のべき乗として表わします。区切りの E は,大文字でも小文字の e でも構いません。
1.25E3 | 1.25×103,すなわち 1250 を表わします。 |
3E5 | 3×105,すなわち 300000 を表わします。 |
.12345678E-4 | 0.12345678×10-4,すなわち 0.000012345678 を表わします。 |
- 十六進数定数
- 整数値を十六進数で表現して式に書くことができます。十六進定数を表わす X は,大文字でも小文字でも全角でも半角でも構いません。
X'FFFF' | =65535 |
X'64' | =100 |
X'3E8' | =1000 |
X'2720' | =10000 |
- 八進数定数
- 整数値を八進数で表現して式に書くことができます。八進定数を表わす O(オー)は,大文字でも小文字でも全角でも半角でも構いません。
O'11' | =9 |
O'77' | =63 |
O'144' | =100 |
O'1750' | =1000 |
- 二進数定数
- 整数値を二進数で表現して式に書くことができます。二進定数を表わす B は,大文字でも小文字でも全角でも半角でも構いません。
B'11' | =3 |
B'111' | =7 |
B'1111' | =15 |
B'1100100' | =1000 |
- 数値定数
- 数値定数は,表編集やカード編集のセルに対して入力することができる数値の形式を式の中にも書けるように用意されています。<数値文字列> としては,金額を表わすための円記号や 3桁ごとの区切りのコンマなどを含む形の文字列を書くことができます。数値の入力
数値'3,000' | 3000 |
NUM'45%' | 0.45 |
- 算術定数のデータ型
- 式の中に書かれている算術定数は,数値型(十進数型)に解釈されます。このとき,算術定数が表現する数値の絶対値が大きくて解釈しきれないときは,実数型で解釈します。このようにして解釈された算術定数が演算に使われるときは,その式で要求されているデータ型に合わせられます。
10 | 数値型 |
3000000000.0 | 数値型 |
127E200 | 実数型 |
数値型と実数型は,共に小数点以下を表わせますが,その使用目的は若干異なります。数値型は小数点以下を十進数で正しく表現できますが,実数型では多少誤差の出ることがあります。数値型は主に財務計算などの金銭を扱うときに用い,実数型は科学技術計算などに用います。
- 注意
- 真数定数と概数定数とは項目値をセルに直接入力するときの形と同じですが,十六進数定数,八進数定数,二進数定数および数値定数は,定数として式中に記述できるだけであって,セルに入力する値として記述することはできません。
- 一時項目や置換などに書かれた式の計算で,ゼロ除算やオーバーフローなどを検出したときに現れるデータです。このとき,項目の表示は書式によらず #OVF のような形式をとり,常に一定です。
- エラー数値は,表ファイル中に正常なデータと同様にそのまま保存されます。
- 整数の演算や実数の一部の演算では,このようなエラーが検出されないことがあり,正しくない計算結果となることがあります。
- エラー数値には以下があります。
#TYP | 実行時に型の不一致を検出したときに表示されます。ほとんどの場合は,式を入力した時点で型の不一致が検出され,その場で式の訂正が促されますが,一部は実行時にならないと分からないものがあります。 |
#ZDV | 除数がゼロの除算を行なおうとしたときに表示されます。 |
#DOM | 負の数を対数に適用しようとしたときなど,定義されている範囲外の値を使って関数を呼んだときに表示されます。 |
#OVF | 大きい数どうしの乗算や,十進数から整数への変換などで値が収らず,オーバフローが起こったときに表示されます。 |
#UDF | 十進数で小さい数を大きい数で割ったときなど,結果が精度を超えて小さくなってしまうアンダーフローのときに表示されます。 |
#NCV | 数値表現として正しくない文字列を数値に変換しようとしたときなど,データ型変換が失敗したときに表示されます。 |
#NEV | エラー数値と何かを演算しようとしたときに表示されます。 |
#ERR | これら以外のなんらかのエラーが起こったときに表示されます。 |
- エラー数値かどうかを判定するには,組込み関数 #エラーか(<値>...) を利用します。
- 数値型,整数型,実数型の項目に値を入力するときは,次の機能文字を組み合わせることができます。式中に書く定数には,符号と小数点と指数指標以外の文字を含めることはできません。
符号 | + - | 符号は,数値文字列の先頭にだけ書けます。 |
小数点 | . | 小数点は,数値文字列中に一つだけ書けます。 |
コンマ | , | 金額などの桁の区切りとして入力できますが,値としての意味はもたず,無視されます。正しく3桁ごとに入力する必要はありません。先頭には書けません。 |
指数指標 | e E | 概数定数 |
通貨記号 | \ $ | 通貨記号は,数値文字列の先頭にだけ書けます。 |
パーセント | % | パーセントは,数値文字列の最後にだけ書けます。入力した値が 100分の1 になります。 |
- \,$,% などの機能文字は,入力時に付加することができるだけであって,データ値の一部として保存されることはありません。保存された値を表示するときにもこれらの文字を付加したいときは,書式を利用します。書式:数値書式
- 整数型の項目に小数点以下や指数付きの数値を入力すると,小数点以下第1位を四捨五入して整数に変換されます。
- 十進数以外の,十六進,八進,二進数などを項目に直接入力することはできません。
- 項目に入力できる数値文字列の例
145 |
71.36 |
.25 | 0.25を入力したのと同じ |
-250 |
3e+4 | 3×104,すなわち 30000 を入力したのと同じ |
12.5e-3 | 12.5×10-3,すなわち 0.0125 と同じ |
.3E+4 | 0.3×104,すなわち 3000 と同じ |
45% | 0.45 と同じ |
\3,000 | 3000 と同じ |
年月日の日付を扱うための専用のデータ型が用意されています。
- 日付型データは,紀元前4713年1月1日から紀元9999年12月31日までの日付を扱います。
- データベース中に日付を格納するときは,表ファイルに日付型の項目を定義します。表:項目属性
- 日付型の項目に値を入力するときや日付データを表示・印刷するときは,西暦,元号,月の英語名や省略形などが使えます。日付の入力,書式:日付書式
- 年月間隔型や日時間隔型のデータと組み合わせて,日付計算や時間計算が行なえます。式:日付式,日時操作関数
- 日付の前後関係を比較することができます。式:比較式
- 日付式中で特定の日付を指定するときは,日付定数を書きます。日付定数
日付定数は,日付型の値を表わします。
- 形式
- 日付定数は,日付定数を表わすキーワード DATE または 日付 の後に文字列定数と同じ形式をもつ日付文字列を書いて表現します。
<日付定数> | ::= | DATE ' <日付文字列> ' |
| | | 日付 ' <日付文字列> ' |
- 日付文字列
- 日付定数のキーワードと引用符を除いた <日付文字列> の部分は,日付型項目のセルに直接入力するときの日付文字列と同じです。この日付文字列には,日常的に日付を記述するときの文字列を指定します。あいまいさをなくして,特定の日付を確実に指定するためには,和暦の元号や区切りの年,月,日は省略せずに指定してください。また西暦は4桁で指定してください。
元号や区切りの年,月,日を省略したり,西暦年を2桁で指定したりすることもできます。日付の入力
- 日付定数の例
- DATE'1992年12月15日'
- 日付’平成4年10月31日’
- date'SEP.3'
- DATE’950101’
日付を入力するときは,基本的には,年,月,日を表わす各数字の後に「年」,「月」,「日」の文字を付けて入力します。
- 例: 2000年1月1日
元号や月を表わす文字
- 和暦の元号,西暦,紀元前などを区別する文字として次の文字が使えます。
西暦 西 AD A.D. ad a.d. | 入力した日付が西暦であることを示します。 |
紀元前 前 BC B.C. bc b.c. | 入力した日付が西暦の紀元前であることを示します。 |
平成 昭和 大正 明治 平 昭 大 明 H S T M | 入力した日付が和暦のそれぞれの元号に応じたものであることを示します。 |
- 月を入力するときは,英語の月を表わす文字 JANUARY 〜 DECEMBER,Jan 〜 Dec などを使うことができます。
- 数字および上記の文字以外は,すべて年月日の区切り文字として扱われます。
年月日の入力順序
- 「年」「月」「日」の区切り文字を書いている限り,年月日はどの順番で入力しても構いません。年月日の区切りを省略した場合でも,年月日が分かっている部分や各数値の大きさから,できる限り自然な形で解釈されます。たとえば,
- まず,「年」「月」「日」が後続する数字や月を表わす英語は,それぞれに解釈されます。
- 31 より大きい数は年に解釈されます。
- 13〜31 の数は日または年に解釈されます。
特殊な日付入力
- 今日の入力
ピリオド(.)だけを入力すると,入力した時点のシステムの日付が入力されます。
- 月末の入力
日の部分に E(大文字小文字全角半角いずれでもよい)を入力すると,月末日と解釈されます。
省略形の入力
- 年,月,日のいずれかを省略することができます。そのときは,システムの日付を参照して,省略部分を補います。ただし,年と日を指定して月を省略することはできません。
- 一つの数字だけが入力されたときは,次のように解釈されます。
- 1〜31 のときは,システムの日付から年月を補います。ただし,その月の末日を超える場合は,翌月の 1日から 3日とみなされます。
- 5桁以上の数値は,後から 2桁ずつに分解して,前から年,月,日と解釈されます。
- それ以外は年とみなされ,その年の 1月 1日とされます。
- 元号指定が省略されている年は,次のように解釈されます。ただし,3.〜6. の解釈については,[他]-[各種設定]で変更できます。各種設定ダイアログ:入力・編集に関する設定項目(その2)
- 負の値は紀元前とします。-1 が紀元前1年です。
- 0 は,西暦2000年とします。
- 1 から,6年後の西暦年の下2桁までの数は,西暦2001年〜西暦20xx年とします。
- 6年後の西暦年の下2桁から 6年後の平成年までの数は,平成年とします。
- 6年後の平成年から 64 までは,昭和年とします。
- 65〜99 の数は,西暦1965年〜1999年とします。
- 100以上の数は,そのまま西暦年(西暦100年〜)とします。
日付文字列の例
- ここでは,システムの日付が 2000年1月15日のとき,入力値に対してどのように解釈されるかを示します。元号なし2桁年に対する各種設定の状態は,既定の状態(自動,境界年=+6)であるとします。
. | 2000年1月15日 |
63-4-E | 昭和63年4月30日 |
63-4-5 | 昭和63年4月5日 |
4-5-63 | 昭和63年4月5日 |
30-5-63 | 昭和63年5月30日 |
30-25-12 | 昭和30年12月25日 |
H4:4:5 | 平成4年4月5日 |
4/4/5 | 2004年4月5日 |
921201 | 1992年12月1日 |
601201 | 昭和60年12月1日 |
130115 | 平成13年1月15日 |
95-4-31 | 1995年5月1日 |
11-12 | 2000年11月12日 |
13-12 | 2000年12月13日 |
12-93 | 1993年12月1日 |
95 May 1 | 1995年5月1日 |
May 1,95 | 1995年5月1日 |
3 | 2000年1月3日 |
0 | 2000年1月1日 |
93 | 1993年1月1日 |
11月 | 2000年11月1日 |
2日 | 2000年1月2日 |
正しくない日付文字列
- 次のような入力は日付として無効であり,エラーになります。
30-25-13 | 月に該当する数字がない |
H4-4日5年 | 年の指定が二つある |
92年10日 | 月の指定が省略された |
94-2-30 | 存在しない日付 |
- 時刻型データは,0時0分0秒から23時59分59秒までの時刻を扱います。
- データベース中に時刻を格納するときは,表ファイルに時刻型の項目を定義します。表:項目属性
- 時刻型の項目に値を入力するときや時刻データを表示・印刷するときは,午前/午後,AM/PM,その他の省略形などが使えます。時刻の入力,書式:時刻書式
- 日時間隔型のデータと組み合わせて,時間計算が行なえます。式:時刻式,日時操作関数
時刻の前後関係を比較することができます。式:比較式
- 時刻式中で特定の時刻を指定するときは,時刻定数を書きます。時刻定数
時刻定数は,時刻型の値を表わします。
- 形式
- 時刻定数は,時刻定数を表わすキーワード TIME または 時刻 の後に文字列定数と同じ形式をもつ時刻文字列を書いて表現します。
<時刻定数> | ::= | TIME ' <時刻文字列> ' |
| | | 時刻 ' <時刻文字列> ' |
- 時刻文字列
- 時刻定数のキーワードと引用符を除いた <時刻文字列> の部分は,時刻型項目のセルに直接入力するときの時刻文字列と同じです。この時刻文字列には,日常的に時刻を記述するときの文字列を指定します。あいまいさをなくして,特定の時刻を確実に指定するためには,午前/午後,区切りの時,分,秒などを省略せずに指定してください。さまざまな省略形で指定することもできます。時刻の入力
- 時刻定数の例
- TIME'19時12分15秒'
- 時刻’午前4時10分31秒’
- time'23:59:59'
- time’pm 9:00’
時刻を入力するときは,基本的には次のように時分秒をすべて入力します。時の数値は 0〜24,午前午後で示すときは 0〜12,分秒の数値は 0〜59 でなければなりません。24時および午前12時は午前0時(正子)とみなされます。午後12時は正午とみなされます。
-
- 例:
- 14時15分20秒
- 14:15:20
午前/午後と区切り文字
- 午前午後を示す文字として次のものを指定できます。
- 午前 午後 AM PM A P
- 上記以外の文字は,すべて時分秒の区切り文字として扱われます。必ずしも「時」「分」「秒」やコロン「:」で区切られている必要はありません。
時分秒の入力順序
- 「時」「分」「秒」の区切り文字を書いている限り,時分秒はどの順番で入力しても構いません。
- 時分秒の区切りを省略した場合でも,入力された数値の大きさなどから時分秒が判別可能な場合は正しく解釈されます。
現在時刻の入力
- ピリオド(.)だけを入力すると,そのときのシステムの時刻が入力されます。
省略形の入力
- 時分秒の単位を付けて入力すれば,任意の部分を省略することができます。
- 時分秒の単位が付かない数値を一つだけ入力すると,その値が 24以下であれば時,25〜59 であれば分に解釈されます。
- 時分秒の単位が付かない数値を二つだけ入力すると,その値が 24以下のものがあれば時に,それ以外の 25〜59 の値が順番に分,秒に解釈されます。
- 3桁以上の数値を入力すると,後から 2桁ずつに分解して,前から時分秒と解釈されます。
- いずれの場合も,省略された部分にはゼロが補われます。
時刻文字列の例
-
. | そのときのシステムの時刻 |
120305 | 12時3分5秒 |
1235 | 12時35分0秒 |
12356 | 1時23分56秒 |
10:24pm | 22時24分0秒 |
24:05 | 0時5分0秒 |
午後12時5分 | 0時5分0秒 |
午前12時5分 | 12時5分0秒 |
13 | 13時0分0秒 |
35 | 0時35分0秒 |
1秒 | 0時0分1秒 |
28:12:34 | 12時28分34秒 |
午前10時6秒 | 10時0分6秒 |
正しくない時刻文字列の例
-
午後13時49分 | 時の指定が大き過ぎる |
9999 | 解釈できない |
年月間隔型のデータは,「何年何ヵ月」で表わされる長い時間を扱います。
- 年月間隔型は,-178,956,970年7ヵ月〜178,956,970年7ヵ月 の範囲のデータを扱います。
- データベース中に年月間隔を格納するときは,表ファイルに年月間隔型の項目を定義します。表:項目属性
- 年月間隔型の項目に入力された値は,指定された単位と書式によって解釈が与えられます。年月間隔の入力
- 日付型データと組み合わせて,年齢計算などに使えます。日時間隔型のデータと混合して演算することはできません。式:年月間隔式,日時操作関数
- 大小比較は,一般の数値の場合と同様です。式:比較式
- 式の中で年月間隔の値を示すときは,年月間隔定数を書きます。年月間隔定数
年月間隔定数は,年月間隔型の値を表わします。
- 形式
- 年月間隔定数は,年月間隔定数を表わすキーワード YMINTERVAL,YMI または 年月間隔 の後に文字列定数と同じ形式をもつ年月間隔文字列を書いて表現します。
<年月間隔定数> | ::= | YMINTERVAL ' <年月間隔文字列> ' |
| | | YMI ' <年月間隔文字列> ' |
| | | 年月間隔 ' <年月間隔文字列> ' |
- 年月間隔文字列
- 年月間隔文字列には年数,月数またはその両方のいずれかを指定します。指定された数値が年数であるか月数であるかは,その単位を見て判断されます。
年月間隔定数のキーワードと引用符を除いた <年月間隔文字列> の部分は,年月間隔型項目のセルに直接入力するときの年月間隔文字列と同じです。年月間隔の入力
- 年月間隔定数の例
- YMINTERVAL'130年'
- 年月間隔’100ヵ月’
- ymi'23'
- 年月間隔’2才6ヵ月’
年月間隔のデータを入力するときは,基本的には次のように「年」「月」などの単位を付けて入力します。
-
- 例:
- 100年
- 1歳6ヵ月
- 30ヵ月
単位,区切り文字など
- 年月間隔型の項目には,数字と次のような文字が入力できます。
符号 | + - |
小数点 | . |
年月を示す単位 | 年 月 才 歳 |
年月を区切る文字 | 上記以外の文字は,すべて年月の区切り文字として扱われます。 |
年月の入力順序と書式
- 入力された数値が年,月のどちらに対応するかは,数値に後続する単位およびその項目の表示書式により,次のように決定されます。
- 明示的な単位が付加されている数値は,その単位で解釈されます。
- 最初の数値が単位をもたない場合,その数値の単位は表示書式の最初に書かれている機能文字の単位として解釈されます。
- 明示的な単位を指定したにしろ,書式による解釈にしろ,最初の数値の単位が年であった場合,後続する単位をもたない数値は月に解釈されます。
- 最初の数値が月に解釈された場合,単位をもたない数値が後続するとエラーになります。
- 上記 1〜4 の解釈により,同じ単位に解釈される数値が2度以上表われたり,月の後ろに単位をもたない数値が表われた場合はエラーになります。
- 月に解釈された数値が 12 を超える場合,年に繰り上げて解釈されます。たとえば,20ヵ月は 1年8ヵ月,1年20 は,2年8ヵ月と解釈されます。
年月間隔文字列の例
- 設定されている書式に対して,入力値がどのように解釈されるかを示します。
入力値 | y年mヵ月 | y才 | mヵ月間 |
5 | 5年0ヵ月 | 5年0ヵ月 | 0年5ヵ月 |
5才5 | 5年5ヵ月 | 5年5ヵ月 | 5年5ヵ月 |
1/2 | 1年2ヵ月 | 1年2ヵ月 | エラー |
30ヵ月2年 | 4年6ヵ月 | 4年6ヵ月 | 4年6ヵ月 |
1.5 | 1年6ヵ月 | 1年6ヵ月 | 0年1ヵ月 |
日時間隔型のデータは,秒を単位とする時間を扱います。
- 日時間隔型は,-2,147,483,647日23時間59分59秒 〜 2,147,483,647日23時間59分59秒の範囲のデータを扱います。
- データベース中に日時間隔を格納するときは,表ファイルに日時間隔型の項目を定義します。表:項目属性
- 日時間隔型の項目に入力された値は,指定された単位と書式によって解釈が与えられます。日時間隔の入力
- 時刻型データと組み合わせて,時刻計算などが行なえます。年月間隔型のデータと混合して演算することはできません。式:日時間隔式,日時操作関数
大小比較は,一般の数値の場合と同様です。式:比較式
- 式の中で日時間隔の値を示すときは,日時間隔定数を書きます。日時間隔定数
日時間隔定数は日時間隔型の値を表わします。
- 形式
- 日時間隔定数は,日時間隔定数を表わすキーワード DTINTERVAL,DTI または 日時間隔 の後に文字列定数と同じ形式をもつ日時間隔文字列を書いて表現します。
<日時間隔定数> | ::= | DTINTERVAL ' <日時間隔文字列> ' |
| | | DTI ' <日時間隔文字列> ' |
| | | 日時間隔 ' <日時間隔文字列> ' |
- 日時間隔文字列
- 日時間隔文字列には日数,時間数,分数,秒数のうちの任意の数値を指定します。指定された数値が何の値であるかは,その単位を見て判断されます。
日時間隔定数のキーワードと引用符を除いた <日時間隔文字列> の部分は,日時間隔型項目のセルに直接入力するときの日時間隔文字列と同じです。日時間隔の入力
- 日時間隔定数の例
- DTINTERVAL'13日6時間30分'
- 日時間隔’100時間’
- dtinterval'23分46秒'
- DTI'1:12:00:00'
日時間隔は,基本的には次のように日時分などの単位を付けて入力します。
- 例:
- 3日4時間5分6秒
- 1週3日
単位,区切りなど
- 日時間隔型の項目には,数字と次のような文字が入力できます。
符号 | + - |
小数点 | . |
日時を示す文字 | 週 日 時間 時 分 秒 |
日時を区切る文字 | 上記以外の文字は,すべて週日時分秒の区切り文字として扱われます。 |
週日時分秒の入力順序と書式
- 入力された数値が週,日,時間,分,秒のいずれに対応するかは,数値に後続する単位およびその項目の表示書式により,次のように決定されます。
- 明示的な単位(週,日,時間,分,秒)が付加されている数値は,その単位で解釈されます。
- 明示的な単位をもつ数値に後続する単位をもたない数値は,単位をもつ数値に連続する単位をもつものとして解釈されます(週→日→時間→分→秒の順)。
- 最初の数値が単位をもたない場合,その数値の単位は表示書式の最初に書かれている機能文字の単位として解釈されます。そして,それに後続する単位をもたない数値は,連続する単位をもつものとして解釈されます(週→日→時間→分→秒の順)。
- 最初の数値に単位がなく,後続する数値が単位をもつ場合,3. の順に解釈された単位と重ならなければその単位に解釈されます。
- 上記 1.〜4. の解釈により,同じ単位に解釈される数値が2度以上現われたり,また最下位の単位:秒の後ろに単位をもたない数値が再び現われた場合はエラーになります。
- それぞれ上位の1単位分の値を超える数値を入力すると,上位の単位に繰り上げられます。たとえば,30時間は 1日6時間と,1日30 は,2日6時間と解釈されます。
日時間隔文字列の例
- 設定されている書式に対して,入力値がどのように解釈されるかを示します。
入力値 | d日h時間m分s秒 | w週d日 | s秒 |
5 | 5日0時間0分0秒 | 35日0時間0分0秒 | 0日0時間0分5秒 |
8-30時間 | 9日6時間0分0秒 | 57日6時間0分0秒 | 1日6時間0分8秒 |
1-2 3時間 | エラー | 9日3時間0分0秒 | エラー |
1.5 | 1日12時間0分0秒 | 10日12時間0分0秒 | 0日0時間0分1秒 |
ファイルに格納されている図形データやワープロ文書などのファイル名をDBProの表ファイルに格納しておくと,図形データベースや文書データベースとして利用できます。
- ファイル型のデータは,その値がファイルを識別するためのものであるという点を除き,形式や入力方法などは文字列型データと同じです。
- データベース中にファイル名を格納するときは,表ファイルにファイル型項目を定義します。表:項目属性
- [編集]-[入力補助]-[ファイル名]コマンドを使うと,ファイル名を間違いなく入力できます。ファイル選択ダイアログ
- ファイル型の項目では,起動プロセスを指定しなくても,Windows でそのファイルに関連付けられたアプリケーションを使って開いたり,実行したりすることができます。表:項目属性:起動プロセス
DPL中で,コマンドステートメントのパラメータを実行中に変更することができるように,DBProのキーワードを変数に代入することができます。変数に代入される値は,いずれのデータ型とも異なる形式の値をもち,次の形のキーワード定数で指定します。
- KEYWORD '<キーワード>'
<キーワード> には任意のキーワードと同じ文字列を書けます。このキーワード定数が代入されている変数を,コマンドのパラメータとして書くと,その値のキーワードを書いた場合と同じ効果を得られます。式の構文
ポインタ型は,#ALLOC や #FOPEN などの一部の組込み関数の戻り値として得られ,主に変数に代入して利用されます。それぞれの組込み関数を参照してください。式の構文
ナルは,いずれのデータ型にも適合する特殊な定数であって,不定,未入力,未定義,ゼロなどの意味に使われます。
- レコードの項目に何も入力されていない状態もナルであるといいます。
- 式中でナルを表現するには,NULL と書きます。
- 理論的には,ナルは不定だとか未入力だとかを表わす値なので,ナルと別の値との間で演算を行なった結果はナルになります。しかし,未入力の数値項目などのナルは,実用的にはゼロとして扱った方が便利なことが多いので,DBProでは項目値としてのナルをゼロと同じに扱うこともできます。表:項目属性:ナル値の扱い
- また,通常,ある値とナルとの比較は,たとえ両方とも値がナルであっても結果はナルになります。しかし,ナルを表わすキーワード NULL との等値比較に限っては,他方がナルなら真,そうでなければ偽となります。
- 同様に,重複レコード選択,単一化選択,索引のキー項目の重複判定,併合の照合キーの一致判定などでは,通常はナル同士は等しくない(重複しない)と判定されますが,[ナル同士は重複とみなす]と指定すると,ナル同士が等しいものとして処理されます。重複レコード選択ダイアログ,単一化選択ダイアログ,索引ダイアログ,併合ダイアログ:照合ページ
- ナルは,論理式の値:偽を表わす具体的な値として用いられます。式:論理式