移行ツール案件Tips

【プログラミング全般】
    Releaseモードでの絵エラー調査方法
        printfを入れまくって、どこまで動いているか確認する

C言語
    インクルードディレクトリの設定
        プロジェクト⇒プロパティ⇒構成プロパティ⇒C/C++⇒追加のインクルードディレクトリ
            ../../../../../inc:%(AdditionalIncludeDirectories)

    Pro*C(Subフォルダ内)のビルド
        ライブラリファイルとして、ビルドすると.libファイルを追加
        
        libファイルを追加のライブラリファイルとして追加しておくことで、実行するときに
        読み込んでくれる
        
        Pro*CをC言語コンパイルする際のカスタムビルドツール設定
        call vcvars32.bat
        
        出力ファイルの場所
        $(ProjectDir)$(InputName).c;%(Outputs)

    PathFileExistA@4のエラーになる
        #pragma comment(lib, "Shlwapi.lib")
        をインクルードする
        
    構文エラー:';'が型の前にありません。エラーが出たら
    ⇒C言語では変数宣言が途中にあるとエラーを吐く。
    
    BREAKを使用してえらーがあった際に一気に飛ばす為に使用されるコード
    do
    {
        エラー処理があった場合 break;
    
    }while(false);
        
    DLLとかの参照先を設定する方法
        ツール⇒オプション⇒ディレクトリ
                    インクルードファイル⇒ヘッダファイルを格納
                    実行可能ファイル⇒DLL
                    ライブラリファイル⇒LIB
    
    VC6.0操作法
        左側のソース一覧画面を間違えて閉じてしまった場合の表示方法
            表示⇒ワークスペース
        ソースウィンドウとワークスペースが別々に表示されるようになってしまった場合の元に戻す方法
            ワークスペースウィンドウを表示中に右クリック⇒ドッキングビュー

Oracle
    Oracleで使用文字コードを取得する
        SELECT
            VALUE
        FROM
            NLS_DATABASE_PARAMETERS
        WHERE
            PARAMETER='NLS_CHARACTERSET'

    文字コードの問題点
        NCHAR、NVARCHARは、Unicodeのため、プログラムで文字コード変換処理が必要な場合
        (DBのデータがSHIFT-JISでUNICODEで出力する場合)
        注意する。
        
    1行だけ取得する
        WHERE ROWNUM <= 10
    
    テーブル間で、指定した値があるか判断する方法
        EXISTS( SELECT 'X' FROM A_TABLE WHERE A_TABLE.A_DATA = B_TABLE.B_DATA)

    主キーに重複データの抽出方法
        SELECT
            主キー項目
        FROM
            テーブル
        GROUP BY
            主キー項目
        HAVING
            COUNT(*) > 1

SQL PLUS】
    SQLログ(SPOOL)を行う
        SPO ON
            SELECT * FROM A_TABLE
        SPO OFF

Excel
    あるセルの色が~だったらその行ごと色を変える方法
        ①色を変えたいセルを1行選択する
        ②条件付書式⇒新しいルール⇒数式欄に判定させる値が入る予定のセルを指定し、条件を入れる
        ③例)=$G7="CHAR"
        

    指定した箇所だけ抜き出して表示する
        =MIDO(B17, 16, FIND("]",B17,1)-16)

    ダブルコーテーションが着いた状態でエクセルに貼り付ける方法
        ①エクセルのシートを全体選択(Ctrl + A)し、右クリック⇒書式設定⇒文字列に設定。
        ②テキストからエクセルに貼り付けを行う
        ③Ctrlボタン⇒テキストファイルウィザードを使用
        ④区切り文字を「タブ」、引用符を「なし」に設定する

    ワードに貼り付けるときに改行がいろいろ付いてコピーできない場合
        一度ワードに貼り付けてから、テキストのみ保持にしたやつを再度コピーしてみる?

    改行を検索する方法
        検索ボックスを指定した状態で、Ctrl+Jキーを謳歌する。
        ⇒見た目上は変わらないが、検索するとちゃんと検索できる
        ⇒検索し終わったら検索メニューでDELETEキーを押してリセットすること

    オブジェクトの選択数により処理を分岐する方法
        If  TypeName(Selection) <> "DrawingObjects" Then
            一つにしか選択していない場合
        ELSE
            二つ以上選択している場合
        END IF

    テスト仕様書作成方法
        汎用的に仕様書を作成できるよう、
        データを紐付けて一箇所変更すれば固有の場所がVLOOKUPを使用して
        すべて一括で編集できるようにする
        
        
        
秀丸
    タブの文字をすべて表示する方法
        タブを右クリック⇒タブの詳細
        ウインドウ幅からはみ出すとき⇒複数

    半角、全角スペースを表示する
        「その他」-「ファイルタイプ別の設定」-「表示とカラー」で設定できます。

【プロジェクト反省点】
    ・製造段階で気づくべきだったこと
        フラッシュのタイミング
            ⇒少なくともログは一度ごとにフラッシュしないとエラーの箇所が分からない
        トランザクション(COMMIT、ROLLBACK)のタイミング
            ⇒どの単位で実施するかまで、プロジェクトにあわせて最初に考えておくこと
        
        ログの出力内容、タイミング
            INFOにしたときに何の情報をどのようなフォーマットで出力するか早く確定すべきだった。
            日付    ファイル名    行数    項目    エラー内容(「どの行」の「どの項目」が「どんな理由で」エラーになったかが分かるように)
            
            エラーになったらそこで終わるもの、ある程度進めてから終わりにするものがある。
            例)共通部品 すぐにエラーで返す
                メイン 一行すべてエラーを出し切ってからまとめてエラーを出す
            
    ・エビデンス格納方法
        テスト仕様書の確認項目毎に番号を振り、エビデンスフォルダ内に番号単位でフォルダ分けし、
        テスト仕様書とエビデンスの確認結果が紐付くようにして、
        他人から見てもエビデンスと仕様書の関係が分かるようにする
            ・エビデンス格納時の考慮内容
                テスト番号の大項目ごとにフォルダ分けする
                改ページで収まるようにする
                改ページ毎に罫線を引く
                ページヘッダー、フッター設定

    ・SQL文の確定
        マッピング資料で項目が確定した時点で、
        早い段階で実際にSQLを作っておくようにする

    ・テスト方法
        出力されたデータがDBからのデータの場合、テーブルの値と比較して
        正しく値を取得できているか確認する
        
        出力データ    A_TABLE
        "aaa"        aaa
        
        
        ①新システムDBの型と、現行DBの型を意識する。
            現行DBの型がCHAR型で空文字だった場合を考慮し、
            NOT NULL制約の型の場合は、初期値で0を格納する。

        ②CSV出力する場合は、現行DBの値が改行コード格納可能か調査
            仕切れない為、予め改行コードは削除する。