Access よ!こんなのを「循環参照」と言うのかい?[データベース]
(2021-03-09 15:38:36) by shinoda


Microsoft Access で、「クエリデザイン」→「SQL ビュー」として直接以下のような SQL を叩くと、

SELECT 
    Format(Uri_day,'mm/dd') As Uri_day,
    Denpyo_no
FROM 
    T_Uriage 
WHERE 
    Denpyo_no = '001002'

なんか、「クエリ定義の SELECT で指定されている別名 'Uri_day' が循環参照を発生させています。」とエラーになる。

<画像:20210309_access1.jpg>

どうも、式(Format)の中で使っている列名(Uri_day)と同じ名前を、計算結果の別名には使えないようだ。別名を Uri_Uri_Day とかに変えたら上手くいった(笑)。

Excel でも同じようなエラーが出るケースがあるようなので、Microsoft べったりの開発者にとっては「常識」なのかな?
でも、つまりこれって、a = a + 1 とか、そういうことが出来ないっていうのと同じことじゃない?相当変な話やな(笑)

他の DBMS でもこんなことになるっけ?と思い、MySQL で似たようなことをやってみた。

mysql> SELECT
    ->     DATE_FORMAT(cdate,'%m/%d') AS cdate,
    ->     user_no
    -> FROM
    ->     t_user
    -> WHERE
    ->     user_no = 'AB129'
    -> ;
+-------+---------+
| cdate | user_no |
+-------+---------+
| 06/10 | AB129   |
+-------+---------+
1 row in set (0.01 sec)

ならんやん!!正常に実行された。

やっぱ、なんというか・・・Microsoft めぇ〜な話やなあ(笑)。Microsoft の「常識」は社会の「非常識」(笑)

※ちなみに、VB.NET のプログラム内から同じ SQL で Access を参照してもエラーにはならない。

おいっ!Microsoft!!(^^;

※「循環参照」を「環境参照」って間違えてたことにさっき気づきました(^^; 単なる打ち間違いです。

コメント投稿
次の記事へ >
< 前の記事へ
TOPへ戻る

Powered by
MT4i 3.0.8