PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
15786 01/07/13 15:04:39 RE(1):PB6.5: 2001年9月9日問題について By ryochan
15784 01/07/13 11:39:49 PB6.5: 2001年9月9日問題について By nishizono

カテゴリ:PowerBuilderの不具合?
日付:2001年07月13日 15:04 発信者:ryochan
題名:RE(1):PB6.5: 2001年9月9日問題について

nishizonoさん、こんにちは。
>2001年9月9日問題について質問致します。
同じ発言をされた方もいらっしゃいますね。
なるほど、こんな問題もあるのですね。

無責任発言で済みませんが、
日付のバイナリ(8バイト)データをそのまま
扱う分にには問題ないと思います。

特に10桁になっても、8バイトから溢れる
わけではないので、バイナリデータデータ
自体で扱うPBでいうdate型、datetime型の
問題はないでしょう。またyyyy/mm/ddの変換
またその処理も問題ないでしょう。

バイナリデータの数値を文字列として扱う
処理がヤバイということで、開発サイドの
問題です。
まずPBではそのようなデータの持たせ方で
開発しない為大丈夫だと思います
(ここが無責任^^)

サイトを拝見しました。PBから脱線しますが
サイトの解説をもう少し詳しく解説すると、

例えば、バイナリデータの値を文字列として
格納、処理をしている状態で、sprintfを使
用した場合、オーバーフローしますね。
また、現在では9桁で揃っているため、そのま
ま文字列比較できたのですが、10桁と9桁では
1000000000と999999999では999999999のデー
タの方が大きいという比較になります。
2001年9月9日午前10時46分40秒に
こんなCのPGMがあるとヤバイということです。
\"<>\"はタグになってしまいますね。
#include \"time.h\"
#include \"stdio.h\"

char str_time[9];<-10バイトしか確保していない。
time_t cur_time;
time(&cur_time) <-現在の時刻(問題のバイナリデータ)習得

sprintf(str_time,\"%d\",cur_time) <-ヤバイ
snprintf(str_time,sizeof(str_time),\"%d\",cur_time) <-なら問題ないが、
データ自体9桁しかないので不整合がおきる。

strcomp関数でで保存した文字列日付データ
の比較もヤバイということでしょう。


付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS Windows NT 4.0
DBMS (記載なし)
Browser (記載なし)

Server SoftWare

OS Solaris
DBMS Sybase SQL Server System 11
WebServer (記載なし)

PowerSpaceの運営は、パワーフューチャー株式会社が行っております。
Copyright © 2013 Power Future Co., Ltd.