過去の桐井戸端BBS (桐ver.9)
22240 イベントや一括処理で表の再定義は出来るのでしょうか? katsuyoshi 2003/09/08-17:41
久しぶりに書き込みします。
CSVファイルを表に読み込んでデータベースを作成しています。
CSVの書き出しは別業者が作ったため不要な項目名があるためファイルサイズが大きくなっています。
 現在750,000レコードで261MB程度となっています。
必要な項目名は半分で良いので会話処理で再定義すると約50%程度になりハードデスクの負担が軽くなります。
まだ1年半のデータでこの先あと半年分を追加しなければなりません。
CSV読込をイベントで実行させていますのでその読込が終わったら引き続き実行させたいのですが可能でしょうか。
宜しくお願い致します。
22241 Re:イベントor一括で表の再定義は出来るのでしょうか? 宮城 2003/09/08-18:20
記事番号22240へのコメント
katsuyoshiさん、こんにちは。

イベントor一括で表の再定義は出来ます。
しかし、この場合、直に表定義を操作するのでなく、イベントor一括でやる必然性があるようには思えませんが・・・。

22243 一部を別の表に読み込むのではだめですか 佐田 守弘 2003/09/08-19:09
記事番号22240へのコメント
katsuyoshiさん
簡単に言うと、CSVファイルを読み込むと、[A]〜[Z]の項目になる。
しかし本当に必要なのは、[A]〜[K]の項目であり、残りの項目は切り捨てたい。
という事と思います。

私でしたら、次の様にします。
1)読み込み用のワーク表には全項目を読み込む読み込み用の表とは、今作っている表です。
2)必要な項目だけ、別の表に書き出す、あるいは別の表に読み込む
CSVを読み込むワーク表とは別に、目的の表を作っておきます。
これは現在の表の枠組みを書き出し、不要項目を削除すればでき上がります。
そしてこの表にワーク用の表から読み込むか、ワーク様の表からこの表に追加書き出しします。

佐田守弘(KS-00119)
22248 Re:一部を別の表に読み込むのではだめですか katsuyoshi 2003/09/08-22:15
記事番号22243へのコメント
宮城さん、佐田さんありがとうございました。

>簡単に言うと、CSVファイルを読み込むと、[A]〜[Z]の項目になる。しかし
>本当に必要なのは、[A]〜[K]の項目であり、残りの項目は切り捨てたい。
>という事と思います。

そのとおりです。

>私でしたら、次の様にします。
>1)読み込み用のワーク表には全項目を読み込む
>読み込み用の表とは、今作っている表です。
>2)必要な項目だけ、別の表に書き出す、あるいは別の表に読み込む
>CSVを読み込むワーク表とは別に、目的の表を作っておきます。これは現在の
>表の枠組みを書き出し、不要項目を削除すればでき上がります。
>そしてこの表にワーク用の表から読み込むか、ワーク様の表からこの表に追加
>書き出しします。

説明不足でした。
目的は販売管理の業務ソフト用ソフトから月初めに先月分のデータを
CSVに書き出しそれを桐に読み込みいろんな集計をしています。
読み込む方法は
 1年分(12ヶ月分=12個のCSV)をまとめて読み込む。
 ※この時読み込み終了の後で再定義して不要項目を削除し、ファイルサイズを小さくしようと考えました。
 ※イベントのマウス左クリックで実行しています。

@佐田さんの言われる方法で
 CSVの読み込み表と保存表とは別に作成し毎月の処理で
 CSV→CSV読み込み表→保存表読み込みを繰り返したら
 結構重くなり遅くなりませんか?
 でもその方法でイベントの修正をしてみたいと思います。
A宮城さん
 参考までにイベントor一括の処理方法はどうするのですか。
 イベントの入力コマンドには無いようなのですが。
お願いいたします。
  
22255 Re:一部を別の表に読み込むのではだめですか うにん 2003/09/09-00:00
記事番号22248へのコメント
>>簡単に言うと、CSVファイルを読み込むと、[A]〜[Z]の項目になる。しかし
>>本当に必要なのは、[A]〜[K]の項目であり、残りの項目は切り捨てたい。
>>という事と思います。
>
>そのとおりです。

文字通り「そのとおり」なら、[K]までしか定義のない表に読み込めば、
自動的に残りの項目が切り捨てられるのですが:-)
桐のCSV変換て、フィールドの順番変更とか選択ができないんですねえ。

>@佐田さんの言われる方法で
> CSVの読み込み表と保存表とは別に作成し毎月の処理で
> CSV→CSV読み込み表→保存表読み込みを繰り返したら
> 結構重くなり遅くなりませんか?

一般的には再定義するよりは空の表に読み込んだほうが早いはずです。

22256 別表への読込みと再定義 佐田 守弘 2003/09/09-00:34
記事番号22248へのコメント
katsuyoshiさん
●イベントや一括で再定義する方法
厳密に言えば、会話処理の再定義に相当する処理は、一括処理とイベントではできません。
類似の処理を行うコマンドは、「項目属性変更 削除」コマンドです。
ただし、フォームで表示している表(対象表)に対しては実行できません。
詳しくはHELPを見て下さい。
おそらく同時に複数の項目を指定する事はできるだろうと思います。
再定義と同じ様な処理を内部的に行うので、時間が掛る処理になると思います。

●読み込み/書き出しを行う場合
マシンやデータ量にもよると思いますが、仮に数百MBのファイルだとしても、
最近のマシンであれば、数分の単位の時間で済むと思います。
(案外早いと思います)
なお、読み込みよりも追加書き出しの方が、処理時間は少なくて済む様です。
(確か、再計算か何かを行う分の時間の違いだったかと思います。)

●注意点
1)再定義を行う時
大きなサイズの表で索引を付けていると、再定義の度に索引の再構築が行われるので、大変に時間が掛ります。
再定義を繰り返すときには、索引を全て削除しておいた方が良いと思います。

2)フォーム上で読み込みを行う時
これは読み込みに限らず、表データ全体に対して何か処理を行う様な場合に共通して言える事ですが、
対象となる表が(ここでは読み込み先の表)を表示しているフォーム上で処理を行う場合と、
単なるメニューフォーム上で表を表示せずに処理をする時とでは、処理速度が大幅に違います。
多量のデータを処理する場合には、その表を表示するフォームでは行わないのがコツです。

佐田守弘(KS-00119)
22257 CSVの読み込み等 佐田 守弘 2003/09/09-00:53
記事番号22255へのコメント
うにんさん
>桐のCSV変換て、フィールドの順番変更とか選択ができないんですねえ。

読み込みCSVのダイアログで、左側の「現在項目名」から右側の「読み込み項目」に
登録した順で読み込まれるかと思います。

とは言え、私は多くの場合、読み込み用のワーク表を使って読み込み、
その結果を保存表に読み込む方法を行っております。

その理由は、読み込みに伴う各種のデータ処理を、読み込み用のワーク表の上で行うためです。
ここで言う各種のデータ処理とは次の様なものです。

・日付と時刻から日時に変換する
計測器等で採取するデータの多くは、日付と時刻が別れています。最終的には日時型に変換するので、
この変換をワーク表の上で行います。

・電圧値から元の物理値(圧力値や加重値など)に変換する
例えばフルスケールが1MPaの圧力計で4-20mA出力の時、これに250Ωの抵抗を
かませて1-5Vで記録するのは、良く行われる方法です。この時、取り込んだ電圧値から
元の圧力値に戻す計算もワーク表で行います。

その他いろいろありますが、要はワーク表の方に目的とする値を求める計算項目を
作っておけば、読み込むだけで目的の値が作られます。
そしてこの結果だけを保存用の表に読み込めば、保存用の表は軽くなります。

その様なわけで、一度ワーク表に読み込んでから、目的の表に書き出す、ないしは
読み込むのは、案外と便利な方法です。

佐田守弘(KS-00119)
22261 Re:一部を別の表に読み込むのではだめですか katsuyoshi 2003/09/09-06:29
記事番号22255へのコメント
うにんさんありがとうございました。
>
>文字通り「そのとおり」なら、[K]までしか定義のない表に読み込めば、自動的に
>残りの項目が切り捨てられるのですが:-)
>桐のCSV変換て、フィールドの順番変更とか選択ができないんですねえ。

[A]〜[Z]のうち最後の5項目が不要であれば良いのですが、とびとびで項目選択している為うまくできません。
CSV読み込み時に選択ができれば良いのですがm(_ _)m

>一般的には再定義するよりは空の表に読み込んだほうが早いはずです。

これから佐田さんの方法で再構築してみます。
ありがとうございました。
またご指導下さい。

22262 Re:別表への読込みと再定義 katsuyoshi 2003/09/09-06:36
記事番号22256へのコメント
佐田さんありがとうございました。

頭を切り換えて再構築してみます。
考えてみればデータ量の多い表を再定義すると
かなりの時間を要するのは確かでした。(経験あり)
またご指導お願い致します。

22263 Re:CSVの読み込み等 うにん 2003/09/09-10:21
記事番号22257へのコメント
佐田 守弘さん

>>桐のCSV変換て、フィールドの順番変更とか選択ができないんですねえ。

>読み込みCSVのダイアログで、左側の「現在項目名」から右側の「読み込み項目」に
>登録した順で読み込まれるかと思います。

説明不足でしたが、表の側でなく読み込むCSVの側のフィールドの指定ができないという意味です。
CSVの最初のフィールドを飛ばして読み込んだり変換したりができないということです。
順番の変更は読み込みの場合は桐の表側の項目数以内ならできますね。
変換ではできません。(表にした後でできるからいいんですが)
桐の表同士だと自由にできるわけですが。

戻る