Mol(Math Object Library) fot .Net
The LightDB<(Of <(<'K, D>)>)> type exposes the following members.
コンストラクター
名前 | 説明 | |
---|---|---|
LightDB<(Of <(<'K, D>)>)> |
LightDB クラスのコンストラクタ。keySize と dataSize はキーとデータフィールドの最大配列要素数です。
クラスに含まれる全てのメソッドにキーやデータの配列を引数として指定しますが、以下の処理が適用されます。 ・メソッドの引数に指定した配列のサイズが keySize や dataSize 以下の場合、残りはゼロが仮定されます。 ・メソッドの引数に指定した配列のサイズが keySize や dataSize 以上の場合、 keySize か dataSize 以上の配列要素は無視されます。 また、キーやデータが string の場合、配列サイズではなく最大文字数の指定になります。 文字列も文字列配列として扱いますが配列要素数は常に1と扱います(先頭要素の文字列のみ操作対象になります)。 |
メソッド
名前 | 説明 | |
---|---|---|
AddRecord |
データファイルにレコードを追加します。
同じキーのレコードが既に存在すればレコードは追加されず、戻り値に 1 が返ります。
レコードが正しく追加されれば戻り値として 0 が返ります。
レコードポインターは追加されたレコード位置にセットされます。
| |
ChangeRecord |
同じキーのレコードを検索して見つかれば、そのデータフィールドを Data の内容で置き換えます。
データが処理が正常に更新された場合は 0 、キーが見つからない場合は 2 が戻ります。
正常終了した場合、レコードポインターはアクセスされたレコード位置にセットされます。
| |
Close |
オープンしたファイルをクローズします。
| |
DeleteRecord |
同じキーのレコードを検索して見つかれば、そのレコードを削除します。
削除されたレコードはリンクリストに追加され後のレコード追加に使用されます。
正常終了した場合、レコードポインターは不定になります。
| |
Dispose |
使用したメモリー資源などを解放します。
(Overrides _Mol..::..Dispose()()()().) | |
Flush |
メモリー上にキャッシュされた、書き込む必要のある、ページを LightDB ファイルに書き込みます。
| |
GetField | FieldIndexで指定されるデータ配列(データ配列を Data とすると Data[FieldIndex] )要素を返します。
キーが存在しない場合はデフォルト値(一般にはゼロ)が帰ります。
処理が正常終了すれば、レコードポインターはアクセスされたレコードの位置にセットされます。
| |
GetMaximumRecord |
最大キーのレコードを読み込みます。
正常終了した場合、レコードポインターはアクセスされたレコード位置にセットされます。
| |
GetMinimumRecord |
最少キーのレコードを読み込みます。
正常終了した場合、レコードポインターはアクセスされたレコード位置にセットされます。
| |
GetNextRecord |
前回処理されたキーの(レコードポインターを進めて)次に大きいレコードを読み込みます。
レコードの追加や削除の後はレコードは読み込まれません。
| |
GetPrevRecord |
前回処理されたキーの(レコードポインターを戻して)次に小さいレコードを読み込みます。
レコードの追加や削除の後はレコードは読み込まれません。
| |
Open(String) |
既存の LightDB ファイルを(読み書き可能形式で)オープンします。
ファイルが存在しない場合は新規に作成します。
既存のファイルをオープンする場合は
キーフィールドのタイプとサイズ、データフィールドのサイズが一致しないとエラーになります。
データフィールドはバイトサイズが一致していれば使用可能ですが、お勧めできません。
| |
Open(String, Boolean) |
既存または新規の LightDB ファイルをオープンします。
ファイルが存在しない場合は新規に作成します。
既存のファイルをオープンする場合は
キーフィールドのタイプとサイズ、データフィールドのサイズが一致しないとエラーになります。
データフィールドはバイトサイズが一致していれば使用可能ですが、お勧めできません。
| |
OpenNew |
LightDB ファイルを新規に(読み書き可能形式で)オープンします。
同じ名前のファイルがあれば、エラーになります。
| |
OpenRenew |
LightDB ファイルを(読み書き可能形式で)オープンします。
ファイルが存在しない場合は新規に作成します。同じ名前のファイルがあれば、内容は全て一旦削除されて作り直されます。
| |
ReadRecord |
同じキーのレコードを検索して見つかれば、そのデータフィールドを Data に読み込みます。
見つからない場合は、戻り値に 2 が帰ります。
正常終了した場合、レコードポインターはアクセスされたレコード位置にセットされます。
| |
RereadRecord |
前回処理されたレコードを(再度)読み込みます。
レコードポインターは変化しません。
レコードの追加や削除の後はレコードは読み込まれません。
| |
SetField | FieldIndexで指定されるデータ配列(データ配列を Data とすると Data[FieldIndex] )要素にデータ(d)を設定します。
キーが存在しない場合は新規にレコードが追加されます(指定された配列要素以外はゼロになります)。
処理が正常終了すれば、レコードポインターはアクセスされたレコードの位置にセットされます。
| |
SetupRecord |
同じキーのレコードを検索して見つかれば、そのデータフィールドを Data の内容で置き換えます。
見つからない場合は、キーとデータをデータベースに追加します。
正常終了した場合、レコードポインターはアクセスされたレコード位置にセットされます。
| |
Verify |
オープンされている LightDB ファイルを検証します。
エラーメッセージや付属情報はコンソールに出力されるので、本メソッドを使用する場合は
コンソール出力が有効になっていることを確認してください。 本メソッドは、例えば書き込み処理中に電源がダウンした場合等の、ファイルの有効性を検証するもので 修復の機能はありません。本メソッドで ERROR メッセージが出力された場合はファイルは破壊されている 可能性が高いのでファイル全体を再作成する必要があります。 |
フィールド
プロパティ
名前 | 説明 | |
---|---|---|
DataLength |
データフィールドの最大配列用素数。
文字列(string)の場合は最大文字数です。
| |
FieldIndex |
インデクサ(またはGetField()やSetField()メソッド)を利用してアクセスするデータ配列要素のインデックスです。
ただし、 string の場合は 0 固定で変更することはできません。
| |
IsOpened |
LightDB ファイルがオープンされている場合 true 、そうでなければ false。
| |
Item[([( K])]) |
インデクサを使用してキー(の先頭要素)を連想配列要素としてデータフィールドの要素
(FieldIndex)にアクセスできます。
レコードポインターはアクセスされたレコード位置にセットされます。
| |
Item[([( K, K])]) |
インデクサを使用してキー(の先頭要素)を連想配列要素としてデータフィールドの要素
(FieldIndex)にアクセスできます。
レコードポインターはアクセスされたレコード位置にセットされます。
| |
KeyLength |
キーフィールドの最大配列用素数。
文字列(string)の場合は最大文字数です。
| |
MolHandle |
Mol.C++.dll(ネイティブDLL)と Mol.Net.Dll(.Net 用マネージドDLL)間の情報を管理するハンドル。
NativeDll クラスでユーザ作成のネイティブDLLを作成する場合等に利用できます。
(Inherited from _Mol.) | |
MolType |
Molオブジェクトの属性(_Mol..::..MOL_TYPE)。
(Inherited from _Mol.) | |
ReadOnly |
書き込み禁止属性。書き込み可能なファイルを一時的に書き込み禁止にしたいような場合に設定します。
true に設定すると書き込みができなくなります。
ただし、そもそもファイルを書き込み禁止でオープンした場合は false に設定することはできません。
| |
UserArea |
ヘッダ領域に確保されたユーザ固有の情報領域です。
読み書きできるバイトサイズはUserAreaSizeを参照してください。
(情報はバイト列に変換してください。)
| |
UserAreaSize |
ヘッダ領域にユーザ固有の情報を保存できる領域のバイトサイズです。
| |
UserType |
Molオブジェクトの追加属性(_Mol..::..USER_TYPE)。
例えば一般行列でも要素が対称なら、その属性を積極的にセットすることでソルバーは最適な手法を選択することができます。
当然ながら、間違った設定は間違った値や計算不能な状態に陥りますので注意して設定してください。
(Inherited from _Mol.) |