Thread Rating:
  • 559 Vote(s) - 2.89 Average
  • 1
  • 2
  • 3
  • 4
  • 5
RecordSet DE RecordDataとRecord
08-17-2011, 04:15 PM,
#3
RE: RecordSet DE RecordDataとRecord

上記返信に補足します。

RecordSetはデータを管理するために、オブジェクト生成時に
RecordFieldsオブジェクトでフィールド構造を定義します。

この処理を行うことで入力されるデータの厳格化を行いつつ、
高速にアクセスしやすい構造を内部的に作っているのだと理解しています。

RecordSetに紐付くRecordオブジェクトは全て
リンクされているRecordSetを参照しており、
RecordSetを経由してフィールド情報を確認しています。

このRecordSetとRecordFields、Recordの絶妙な関係で
RecordSetのデータの安全性と高速性が保たれています。


しかし、この構造にはコーディング上の大きな問題があります。

C#のDataTableなど同じようなデータ構造を保持できるものは
どれでも似たような問題を抱えているのですが、

「RecordSetが参照しているフィールドの名前を記憶していないと、
 データ入力のコーディングを行う際にエラーになる。
 しかし、そのエラーは実行するまで検出されない。」

というものです。

これはプログラマにとっては非常に厄介で、
スペルミスがあってもコードが通ってしまうため
デバッグのときに苦労する羽目に陥りがちです。

これに対してC#では、RecordSetに相当するDataTableクラスのサブクラスを
データの種類ごとに設けて、カラムの値をフィールド変数にすることで
問題の解決を図りました。

これはVisual Studioの入力補完機能と合わせることで
デバッグ能力を飛躍的に向上させた反面、
サブクラスの増加に伴う使用メモリ増大の問題を起こしています。

CurlでもC#と同じ実装方法をとることは出来ますが、
「クライアントの環境に捉われず、高速な処理を実現する」
という言語の基本命題を考えると同じ轍を踏むのは避けたいところです。

そこで、CurlとしてはRecordDataのようなデータ書き込み用のクラスを用意して、
コーディングの可読性を上げることで
デバッグの効率を上げることを目指したのではないのでしょうか?

もっとも、RecordDataを用いた方法だと
エラーの発生箇所が変わってしまうため、
どちらが良いのかは好みによると思います。


Messages In This Thread
RecordSet DE RecordDataとRecord - by nasuB - 08-17-2011, 10:30 AM
RE: RecordSet DE RecordDataとRecord - by nmyzk - 08-17-2011, 03:51 PM
RE: RecordSet DE RecordDataとRecord - by nmyzk - 08-17-2011, 04:15 PM
RE: RecordSet DE RecordDataとRecord - by nmyzk - 08-17-2011, 04:20 PM
RE: RecordSet DE RecordDataとRecord - by nasuB - 08-18-2011, 05:35 PM
RE: RecordSet DE RecordDataとRecord - by nmyzk - 08-18-2011, 09:04 PM
RE: RecordSet DE RecordDataとRecord - by nasuB - 08-22-2011, 11:34 AM

Possibly Related Threads...
Thread Author Replies Views Last Post
  RecordSet.batch-events?=true 時でもRecordModifiedイベントが発行されてしまう umemura 1 2,752 12-25-2013, 11:44 AM
Last Post: umemura
  RecordSet に groupby したい? umemura 1 4,649 09-25-2013, 05:14 PM
Last Post: umemura
  RecordSet DE 複数の主キー nasuB 2 4,831 08-16-2011, 09:01 AM
Last Post: nasuB
  {RecordSet.commit}について thiguchi 1 4,733 08-15-2011, 01:04 PM
Last Post: fukuta
Forum Jump:


Users browsing this thread:
1 Guest(s)

MyBB SQL Error

MyBB has experienced an internal SQL error and cannot continue.

SQL Error:
1017 - Can't find file: 'mybb_threadviews' (errno: 2)
Query:
INSERT INTO mybb_threadviews (tid) VALUES('212')