VBScriptについて必死に話し合うスレ
レス数が950を超えています。1000を超えると書き込みができなくなります。
0993デフォルトの名無しさん
2014/11/24(月) 19:05:38.32ID:5R7rrTlSインスタンスはClass_Initializeで作ってクラスレベル変数に保持して使い回し
データベースもCreateDatabaseかOpenDatabaseで一度開いたら、無駄に何度も開き直さない
既にデータベースがある場合はOpenDatabase、無い場合はCreateDatabaseとする
また、動作上は問題ないが、利用するオブジェクトのメンバ名で使われてる名前は
混乱を避けるため、自作のプロシージャや変数名では使わないようにする>CreateDatabase、WriteLine
DatabaseNameはWScript.ScriptFullNameからスクリプトのあるディレクトリを取得してそこに作るか
他からもアクセスできるように特定の場所に固定するなら、環境変数を使って書く
クラス直下の変数宣言は、公開か非公開かを明示すべく、DimではなくPrivateとPublicを使う
定数を上手に利用する("inTitle"とか、フィールド番号の0,1なども定数にすべきもの)
因みに同じ1でも「ReDim Data(GetCount(RecordSet) - 1)」の1は定数化の必要なし
今回のようなケースなら
DA.Insert CreateDatum("タイトル", "内容")
のCreateDatumは、変更されることも省かれることもなく必ず使用されるものなので
Sub Insertで(Title, Content)の引数を取り、その中でCreateDatumすることで
DA.Insert "タイトル", "内容"
とスッキリ書けるようにする
検索結果を取得する部分は、対象フィールドを定数にしたものを引数として渡し
検索するフィールド毎に専用関数を作るなんて無駄なことはしない
cscript.exeでの実行の仕方が解らない人でもWScript.StdOut.WriteLineでエラーにならないように
wscript.exeで実行されてもcscript.exeで実行し直すようにし、最後に
WScript.StdOut.WriteLine "Enterキーを押すと終了します..."
WScript.Stdin.ReadLine
などを入れて、結果が残せる開発環境とかからの実行ではなくても、
結果表示が見る間も無く消えるなんてことが無いようにする.....って、もう行数制限いっぱいかよ...orz
レス数が950を超えています。1000を超えると書き込みができなくなります。