共通ルール
■名前をつける時は、名前をつけようとするものの役割が分かるようなものにすること。
※意味が分からない名前は禁止。但しループカウンタに使用するi、j、kは例外
ex.str1,data…etc.
■名前は日本語のローマ字表記を使用すること。但し、英語が一般的なものは英語を使うこと。
ex.住所…jusho、コード…code、マスタ…master
■単語と単語を接続する場合は、後ろの単語の先頭の文字を大文字にする。
ex.住所コード…jushoCode
例外.定数
■変数のプレフィックスは任意
例外.カーソル、レコードセット、ロータイプ
■変数名は30バイト以内とする。
※オラクル10gの限界!!
■パッケージを使用しカプセル化する事
意味のわからない人はコードを書くな!!勉強して理解したうえでコードを書こう!!
□Oracleの予約語については全て大文字とする(但し、テーブル名や項目名等は除く)
ex.SELECT、FROM、WHERE、UPDATE、GROUP BY、AS
□タブインデントをつける(1タブ=半角スペース4つ)
□例外処理を必ず実装
□「SELECT * ~」を使用せず、必ず取得項目を列挙すること
例)×:SELECT * FROM hoge;
○:SELECT ho, ge FROM hoge;
□INSERT文で列の指定を省略しない
例)×:INSERT INTO hoge (123, 'あいう');
○:INSERT INTO hoge (ho, ge) VALUES (123, 'あいう');
□WHERE句の左辺に関数を使用しない
例)×:SELECT ge FROM hoge WHERE TO_CHAR(ho) = '123' ;
○:SELECT ge FROM hoge WHERE ho = TO_NUMBER('123') ;
定数
■定数はすべて大文字とし、単語と単語を接続する場合は_を使用する。
ファンクション、カーソル、レコードセット
□ファンクションやカーソルやレコードセットの先頭はタイプが分かりやすいようにタイプを設定する。
ex.ファンクション:Func_[ファンクション名]
プロシージャ :Proc_[プロシージャ名]
パッケージ :Pkg_[パッケージ名]
カーソル :cur_[カーソル名]
レコードセット:rs_[レコードセット名]
ロータイプ :rec_[ロータイプ名]
※ 上の3つはやらなくても良い気が・・・
パッケージ作成単位
□原則、機能仕様書の1シートにつき1パッケージ、1ファイルとする。
例)機能仕様書:機能仕様書_経費データ管理.xls
○シート :業務量データ属性編集
パッケージ: Pkg_Gyoumuryou_Zokusei
ファイル : Pkg_Gyoumuryou_Zokusei.sql
○シート :業務量データ集約
パッケージ: Pkg_Gyoumuryou_Shuyaku
ファイル : Pkg_Gyoumuryou_Shuyaku.sql
・
・
※ただし、複数人による同一パッケージの開発が発生する場合には
この限りではない。(作業のしやすさを優先って感じで)
コメント
ストアドコメントは以下のように記述する。
-- ------+---------:---------+---------+---------+---------+---------+---------+
-- System : 原価計算システム
-- Name : [ストアド物理名]
-- Description : [ストアド論理名]
-- Author : ○○○太郎 [作成日]
-- Update : ○○○太郎 [修正日]
-- Argument Input : [入力パラメータ名] - [概要]
-- : [入力パラメータ名] - [概要]
-- Return : [戻り値]
-- ------+---------:---------+---------+---------+---------+---------+---------+
ファンクションコメントは以下のように記述する。
-- ------+---------:---------+---------+---------+---------+---------+---------+
-- Description : [ファンクション物理名]
-- Outline : [ファンクション論理名]
-- Argument Input : [入力パラメータ名] - [概要]
-- : [入力パラメータ名] - [概要]
-- Argument Output : [出力パラメータ名] - [概要]
-- Return : [戻り値]
-- ------+---------:---------+---------+---------+---------+---------+---------+
ステートメントコメントは以下のように記述する。
-- 1行の説明
ex.
-- カーソルのオープン(期間資源データテーブルの更新)
OPEN cur_ckeihi_data;
2009年10月15日木曜日
昔やったAccess案件での命名規則とお約束事項めも
■ 命名規則とその他お約束事項について
□ テーブル
・マスタ系 : M_~~
・トランザクション系 : T_~~
・ワーク系 : W_~~
※ テーブル・フィールドの説明は必須
□ クエリ
・Q_~~という名称にすること
・説明必須。どこの画面、帳票で使用しているか記載すること
□ フォーム
・F_~~という名称にすること
・サブフォームは親フォーム名称の後ろに_SUBをつけることとする
・説明を記載すること。
マスタ系の画面は○を頭につける
トランザクション系の画面は☆を頭につける
共通系の画面は※を頭につける
メニュー系の画面は◎を頭につける
↑SUBフォームの場合には●や★にすること
□ レポート
・R_~~という名称にすること
・サブレポートは親レポート名称の後ろに_SUBをつけることとする
・説明を記載すること。
用紙サイズと縦横を書くこと
□ ページ
・使わないこと。
□ マクロ
・使ったら死刑駄目だよ。可読性が低くなるからやめようね。
□ モジュール
・mod~~という名称
・共通:modCommon。一般的な関数
・ビジネスロジック:modBizLogic。本システムに特化した関数
・グローバル変数:modCon。システム内で使用する変数、定数、構造体、列挙を格納
□ 全般
・オブジェクト名の日本語使用を認める。但し、括弧や記号を使用するとAccessが壊れるのでこれらは使用しないこと
・不要なもの(オブジェクトは作らない)
・一時的にバックアップとして作成するオブジェクトには@マークを名称に含めること
・参照設定をいじったら死刑設定済みなんだからいじらないでね
□ コントロール
・プレフィックスをつけること
txt_:テキストボックス
lbl_:ラベル
chk_:チェックボックス
cmb_:コンボボックス
lst_:リストボックス
opt_:ラジオボタン
grp_:オプショングループ
tgr_:トグルボタン
cmd_:コマンドボタン
img_:イメージボックス
tab_:タブコントロール
sbf_:サブフォーム
sbr_:サブレポート
・コントロール名称をつけること
名称をつけるときにはデータバインドしている物であればデータのコントロールソースとする。
例)顧客名テキストボックス、データバインドしていてコントロールソースが顧客名の場合
⇒ txt_顧客名
※但し、何の制御もしないラベルについてはその対象としない
・コントロールの位置がガタガタにならないようにする
整理するオブジェクトを複数選択し、「メニュー>書式>配置>下にあわす」等を選択しまっすぐにする
・タブ順
TABキーを押下したさいのフォーカス移動順は左から右、上から下に各項目を遷移するようにする
・IME制御
日本語が入るべき箇所は日本語(ひらがな、かたかた等)にする。それいがいはオフにする
・画面サイズ1024×768に収まるようにする
どうしても入らない画面については申告
□ コーディング
・インデントは必ずつけること
・変数名のプレフィックスをつけること
str:String
int:Integer
lng:Long
dt :Date
bln:Boolean
obj:Object
rs :RecordSet
cur:Currency
・Variant型はよっぽどのことが無い限り使わないこと
・""はかならずvbNullStringとすること
・SUBにはCallをつけること
・1モジュール内で4階層以上の深さになる場合には関数化する事。長さが短いモジュールであれば例外も検討。
・1モジュールは2画面に収まる長さとする事。できない場合には関数化すること
・関数・変数には意味のある名前をつけること。日本語は不可とする
但し、i、j、kの3つについてはループカウンタとして用いる場合にはその限りではない
・ByVal、ByRefは必須、変数の省略はアウト、
・1行が長くなり画面に収まらない場合には _ を用いて2行目に書くこと
・定数、列挙、構造体はできる限り使用すること
・変数、関数のスコープ(範囲)は最小にすること
但し、明確な理由がある場合にはその限りではない
・Round関数は使用してはならない。一般的な四捨五入ではないため
□ テーブル
・マスタ系 : M_~~
・トランザクション系 : T_~~
・ワーク系 : W_~~
※ テーブル・フィールドの説明は必須
□ クエリ
・Q_~~という名称にすること
・説明必須。どこの画面、帳票で使用しているか記載すること
□ フォーム
・F_~~という名称にすること
・サブフォームは親フォーム名称の後ろに_SUBをつけることとする
・説明を記載すること。
マスタ系の画面は○を頭につける
トランザクション系の画面は☆を頭につける
共通系の画面は※を頭につける
メニュー系の画面は◎を頭につける
↑SUBフォームの場合には●や★にすること
□ レポート
・R_~~という名称にすること
・サブレポートは親レポート名称の後ろに_SUBをつけることとする
・説明を記載すること。
用紙サイズと縦横を書くこと
□ ページ
・使わないこと。
□ マクロ
・使ったら死刑駄目だよ。可読性が低くなるからやめようね。
□ モジュール
・mod~~という名称
・共通:modCommon。一般的な関数
・ビジネスロジック:modBizLogic。本システムに特化した関数
・グローバル変数:modCon。システム内で使用する変数、定数、構造体、列挙を格納
□ 全般
・オブジェクト名の日本語使用を認める。但し、括弧や記号を使用するとAccessが壊れるのでこれらは使用しないこと
・不要なもの(オブジェクトは作らない)
・一時的にバックアップとして作成するオブジェクトには@マークを名称に含めること
・参照設定をいじったら死刑設定済みなんだからいじらないでね
□ コントロール
・プレフィックスをつけること
txt_:テキストボックス
lbl_:ラベル
chk_:チェックボックス
cmb_:コンボボックス
lst_:リストボックス
opt_:ラジオボタン
grp_:オプショングループ
tgr_:トグルボタン
cmd_:コマンドボタン
img_:イメージボックス
tab_:タブコントロール
sbf_:サブフォーム
sbr_:サブレポート
・コントロール名称をつけること
名称をつけるときにはデータバインドしている物であればデータのコントロールソースとする。
例)顧客名テキストボックス、データバインドしていてコントロールソースが顧客名の場合
⇒ txt_顧客名
※但し、何の制御もしないラベルについてはその対象としない
・コントロールの位置がガタガタにならないようにする
整理するオブジェクトを複数選択し、「メニュー>書式>配置>下にあわす」等を選択しまっすぐにする
・タブ順
TABキーを押下したさいのフォーカス移動順は左から右、上から下に各項目を遷移するようにする
・IME制御
日本語が入るべき箇所は日本語(ひらがな、かたかた等)にする。それいがいはオフにする
・画面サイズ1024×768に収まるようにする
どうしても入らない画面については申告
□ コーディング
・インデントは必ずつけること
・変数名のプレフィックスをつけること
str:String
int:Integer
lng:Long
dt :Date
bln:Boolean
obj:Object
rs :RecordSet
cur:Currency
・Variant型はよっぽどのことが無い限り使わないこと
・""はかならずvbNullStringとすること
・SUBにはCallをつけること
・1モジュール内で4階層以上の深さになる場合には関数化する事。長さが短いモジュールであれば例外も検討。
・1モジュールは2画面に収まる長さとする事。できない場合には関数化すること
・関数・変数には意味のある名前をつけること。日本語は不可とする
但し、i、j、kの3つについてはループカウンタとして用いる場合にはその限りではない
・ByVal、ByRefは必須、変数の省略はアウト、
・1行が長くなり画面に収まらない場合には _ を用いて2行目に書くこと
・定数、列挙、構造体はできる限り使用すること
・変数、関数のスコープ(範囲)は最小にすること
但し、明確な理由がある場合にはその限りではない
・Round関数は使用してはならない。一般的な四捨五入ではないため
PL/SQLでRAISE_APPLICATION_ERRORを使う
DECLARE
hoge NUMBER;
BEGIN
DBMS_OUTPUT.PUT_LINE('1');
RAISE_APPLICATION_ERROR(-20001, 'User Error');
DBMS_OUTPUT.PUT_LINE('2');
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(SQLERRM);
END;
/
RAISE_APPLICATION_ERRORで例外に飛ぶ。
SQLERRMはパラメータに渡された値となる。
ユーザが利用可能なエラー番号の範囲は【-20000 ~ -20999】。
hoge NUMBER;
BEGIN
DBMS_OUTPUT.PUT_LINE('1');
RAISE_APPLICATION_ERROR(-20001, 'User Error');
DBMS_OUTPUT.PUT_LINE('2');
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(SQLERRM);
END;
/
RAISE_APPLICATION_ERRORで例外に飛ぶ。
SQLERRMはパラメータに渡された値となる。
ユーザが利用可能なエラー番号の範囲は【-20000 ~ -20999】。
PL/SQLでPRAGMAを使う
DECLARE
user_exp EXCEPTION;
PRAGMA EXCEPTION_INIT(user_exp, -20001);
BEGIN
DBMS_OUTPUT.PUT_LINE('1');
RAISE user_exp;
DBMS_OUTPUT.PUT_LINE('2');
EXCEPTION
WHEN user_exp THEN
DBMS_OUTPUT.PUT_LINE(SQLERRM);
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(SQLERRM);
END;
/
RAISEで指定したuser_expに飛ぶ。
エラーコードのみ返す形になる。
PL/SQLで自律型トランザクションを使う
CREATE PROCEDURE hoge IS
BEGIN
ROLLBACK;
END;
/
CREATE PROCEDURE hoge2 IS
PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
INSERT INTO xxx ・・・ ;
COMMIT;
END;
/
yyyへのInsertはRollbackされるが
xxxへのInsertはCommitされる。
ロールバックをした際に取り消されたくない処理がある場合に
その処理を関数化した上で自律型トランザクションを使えばOK。
BEGIN
INSERT INTO yyy ・・・ ;
hoge2();ROLLBACK;
END;
/
CREATE PROCEDURE hoge2 IS
PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
INSERT INTO xxx ・・・ ;
COMMIT;
END;
/
yyyへのInsertはRollbackされるが
xxxへのInsertはCommitされる。
ロールバックをした際に取り消されたくない処理がある場合に
その処理を関数化した上で自律型トランザクションを使えばOK。
2009年10月14日水曜日
PL/SQLでRAISEを使う
DECLARE
hoge NUMBER;
BEGIN
BEGIN
DBMS_OUTPUT.PUT_LINE(SQLERRM)
END;
/
入れ子内のRAISEで親の例外に飛ぶため3と4は表示されない。
hoge NUMBER;
BEGIN
DBMS_OUTPUT.PUT_LINE('1')
BEGIN
DBMS_OUTPUT.PUT_LINE('2')
RAISE ; DBMS_OUTPUT.PUT_LINE('3')
END; DBMS_OUTPUT.PUT_LINE('4')
EXCEPTION
WHEN OTHERS THENDBMS_OUTPUT.PUT_LINE(SQLERRM)
END;
/
入れ子内のRAISEで親の例外に飛ぶため3と4は表示されない。
2009年10月8日木曜日
EeePCの不要ファイル削除
初代EeePCのSSDは4GBしか無いため極力不要ファイルを消す。
WindowsXP SP3 インストール後の残容量157MBからどのくらいまで削減できる???
・仮想メモリOFF
マイコンピュータ>プロパティ> パフォーマンス>設定>詳細設定>仮想メモリ>変更>ページングファイルなし
・システムの復元を最低に
マイコンピュータ>プロパティ>システムの復元>最小
・WIndowsUpdateの残骸を削除
C:\WINDOWS\SoftwareDistribution\Download の中のファイルを削除
・WindowsUpdateのアンインストールのためのファイルを削除
C:\WINDOWS\ $始まりのファイルを削除
※アンインストールしない覚悟がある場合のみ
・ドライバファイルの圧縮
C:\WINDOWS\inf のフォルダ>プロパティ>詳細設定>内容を圧縮してディスクを節約をON
70MB→ 24MB 程度になる
参照元
WindowsXP SP3 インストール後の残容量157MBからどのくらいまで削減できる???
・仮想メモリOFF
マイコンピュータ>プロパティ> パフォーマンス>設定>詳細設定>仮想メモリ>変更>ページングファイルなし
・システムの復元を最低に
マイコンピュータ>プロパティ>システムの復元>最小
・WIndowsUpdateの残骸を削除
C:\WINDOWS\SoftwareDistribution\Download の中のファイルを削除
・WindowsUpdateのアンインストールのためのファイルを削除
C:\WINDOWS\ $始まりのファイルを削除
※アンインストールしない覚悟がある場合のみ
・ドライバファイルの圧縮
C:\WINDOWS\inf のフォルダ>プロパティ>詳細設定>内容を圧縮してディスクを節約をON
70MB→ 24MB 程度になる
参照元
登録:
投稿 (Atom)