| function name | return | connection kind | connection change | on header | call count | description |------------------------------ |-------------|----------------|-----------------|--------------|--------------|-------------- | map_source_func | char * | nothing | NO | ON | 0 | | MT_Initialize | int | nothing | NO | ON | 1 | | myConfDebugFlg | int | nothing | NO | ON | 0 | | **about line** 0200 | | | | | | | hex2asciiU_value | char | nothing | NO | OFF | 0 | | DB_Select | int | nothing | NO | OFF | 0 | | DB_Read | int | nothing | NO | OFF | 0 | | DB_Read_wrapped | int | nothing | NO | OFF | 2 | | DB_Update | int | nothing | NO | OFF | 0 | | DB_Insert | int | nothing | NO | OFF | 0 | | DB_Delete | int | nothing | NO | OFF | 0 | | DB_Close | int | nothing | NO | ON | 0 | | DB_Scratch | int | nothing | NO | OFF | 0 | | DB_Trunc | int | nothing | NO | OFF | 1 | | DB_Start | int | nothing | NO | OFF | 0 | | mystrncat | char * | nothing | NO | OFF | 104 | | __M_CLOSE | int | nothing | NO | OFF | 1 | | getAssignPName | char * | nothing | NO | OFF | 2 | | initDBReaded | DBReaded * | nothing | NO | OFF | 7 | | removeDBReaded | int | nothing | NO | OFF | 5 | | destroyDBReaded | int | nothing | NO | OFF | 8 | | destroyDBInsert | int | nothing | NO | OFF | 2 | | destroyDBUpdate | int | nothing | NO | OFF | 2 | | destroyDBDelete | int | nothing | NO | OFF | 2 | | setDBID | void | nothing | NO | OFF | 18 | | pushDBReaded | int | nothing | NO | OFF | 1 | | pushDBInsert | int | nothing | NO | OFF | 1 | | pushDBUpdate | int | nothing | NO | OFF | 1 | | popDBReaded | int | nothing | NO | OFF | 0 | | getDataDBReaded | int | nothing | NO | OFF | 0 | | setReadedRecordFromDBResult | int | nothing | NO | OFF | 1 | | setInsertRecord | int | nothing | NO | OFF | 1 | | setUpdateRecord | int | nothing | NO | OFF | 1 | | setDeleteRecord | int | nothing | NO | OFF | 1 | | insertRecordFromBuffer | int | nothing | NO | OFF | 2 | | updateRecordFromBuffer | int | nothing | NO | OFF | 2 | | deleteRecordFromBuffer | int | nothing | NO | OFF | 2 | | initFieldObj | void | nothing | NO | OFF | 3 | | InitDB_Table | int | nothing | NO | OFF | 1 | | existsDuplicateKey | int | nothing | NO | OFF | 1 | | DB_Read_for_update | int | nothing | NO | OFF | 1 | | DB_Read_for_update_wrapped | int | nothing | NO | OFF | 1 | | matchTableStatus | int | nothing | NO | OFF | 5 | | setTableStatus | void | nothing | NO | OFF | 13 | | getTableStatusWithIndex | char | nothing | NO | OFF | 2 | | getFileStatus | char * | nothing | NO | OFF | 0 | | **about line** 0300 | | | | | | | getFileStatusOrgnization | char | nothing | NO | OFF | 4 | | getFileStatusAccess | char | nothing | NO | OFF | 0 | | setFileStatus | void | nothing | NO | OFF | 5 | | concatKeyQueryString | int | nothing | NO | ON | 0 | | set_DB_Read_query_has_invalid_key3 | int | nothing | NO | OFF | 1 | | set_DB_Read_query_has_invalid_key2 | int | nothing | NO | OFF | 1 | | set_DB_Read_query_has_invalid_key1 | int | nothing | NO | OFF | 1 | | set_DB_Read_query_has_invalid_key | int | nothing | NO | OFF | 6 | | setLogicalAndPhysicalTableName | char * | nothing | NO | ON | 1 | | getIntConvertOrigPtoOrderP | char * | nothing | NO | OFF | 1 | | lineupColumnNames | void | nothing | NO | OFF | 1 | | updateKeyForChangedRecord | int | nothing | NO | OFF | 2 | 文字列として渡されたIDのレコードに対してキーのupdateを行う | closeAllTableObject | void | nothing | NO | OFF | 1 | | strLpadcpy | void | nothing | NO | OFF | 1 | | dataEscapeCopy | int | nothing | NO | OFF | 3 | | dataConvertHexCopy | int | nothing | NO | OFF | 3 | | countPackedDecimal | int | nothing | NO | OFF | 1 | | DB_Table_num | int | nothing | NO | OFF | 0 | | DB_intAutocommit | char | nothing | NO | OFF | 0 | | DB_filestat | char * | nothing | NO | OFF | 0 | | source_file_name | char * | nothing | NO | ON | 0 | | source_user_name | char * | nothing | NO | ON | 0 | | intCurTableNum | int | mana | OK | OFF | 1 | | **about line** 0400 | | | | | | | __m_mysql_fail | int | mana | OK | OFF | 1 | m_mysqlエラー処理 | dbConnectInfoInit | FUNCTION_RESULT | both | OK | OFF | 2 | DB接続の構造体の初期化 | settingDBfromArg | FUNCTION_RESULT | nothing | NO | OFF | 2 | DB接続の構造体に値をセット | M_Transaction | int | nothing | NO | OFF | 3 | トランザクション開始 / | **about line** 0500 | | | | | | | chgChar | void | nothing | NO | ON | 1 | 特定の文字を置換する | turnOperandCharacter | void | nothing | NO | ON | 1 | 受け取った文字列中の<>の記号を反転させる 演算子中にNULLが含まれることはない前提 | getAssignPName | char * | nothing | NO | OFF | 2 | Get the Assign P Name object assignがある時のために,環境変数にテーブル名があるか確認 | getTargTable | int | nothing | NO | OFF | 15 | Get the Targ Table object テーブルオブジェクト をphysicalな名前で取得 | **about line** 0600 | | | | | | | getTargTableLogic | int | nothing | NO | OFF | 4 | Get the Targ Table Logic object テーブルオブジェクト をlogicalな名前で取得 | initDBWhere | void | nothing | NO | OFF | 1 | DBWhereを初期化 | unsetStrWhere | void | nothing | NO | OFF | 2 | strWhereを空にする | initDBReaded | DBReaded * | nothing | NO | OFF | 7 | DBReaded(先読みデータ)に読み込むデータ構造を初期化 | **about line** 0700 | | | | | | | removeDBReaded | int | nothing | NO | OFF | 5 | DBReaded(先読みデータ)に読み込むデータ構造をループで全て初期化 | destroyDBReaded | int | nothing | NO | OFF | 8 | DBReaded(先読みデータ)に読み込むデータ構造をループで全て初期化 | destroyDBInsert | int | nothing | NO | OFF | 2 | DBInsert(insert)に読み込むデータ構造をループで全て初期化 | destroyDBUpdate | int | nothing | NO | OFF | 2 | DBUpdate(update,insert)に読み込むデータ構造をループで全て初期化 | **about line** 0800 | | | | | | | destroyDBDelete | int | nothing | NO | OFF | 2 | DBInsert(insert)に読み込むデータ構造をループで全て初期化 | setDBprevID | void | nothing | NO | OFF | 0 | DBをReadしたときなどにdbのID+元のIDを同時にセット | setDBID | void | nothing | NO | OFF | 18 | DBをReadしたときなどにdbのID+元のIDを同時にセット | pushDBReaded | int | nothing | NO | OFF | 1 | DBReaded(先読みデータ)に読み込んだデータを1行push | pushDBInsert | int | nothing | NO | OFF | 1 | DBInsert(insert用)のデータを1行push | **about line** 0900 | | | | | | | pushDBUpdate | int | nothing | NO | OFF | 1 | DBUpdate(update,insert用)のデータを1行push | pushDBDelete | int | nothing | NO | OFF | 1 | DBDelete(update,insert用)のデータを1行push | popDBReaded | int | nothing | NO | OFF | 0 | DBReaded(先読みデータ)に読み込んだデータを1行取得し、取得したものをリストから削除 | **about line** 1000 | | | | | | | getDataDBReaded | int | nothing | NO | OFF | 0 | Get the Data D B Readed object 第二引数にDBReadの現在の一行をコピー | setReadedRecordFromDBResult | int | nothing | NO | OFF | 1 | Set the Readed Record From D B Result object DBからReadした結果を構造体に格納 | setInsertRecord | int | nothing | NO | OFF | 1 | Set the Insert Record object DBにINSERT予定のデータを構造体に格納 | **about line** 1100 | | | | | | | setUpdateRecord | int | nothing | NO | OFF | 1 | Set the Update Record object DBにUPDATE予定のデータを構造体に格納 | setDeleteRecord | int | nothing | NO | OFF | 1 | Set the Delete Record object DBにUPDATE予定のデータを構造体に格納 | getFieldNumFromName | int | local | OK | ON | 1 | Get the Field Num From Name object mysql_resutとフィールドネームを渡して対応するインデックスを取得 | **about line** 1200 | | | | | | | discoverInsertedID | void | local | OK | OFF | 1 | 直前にInsertしたIDを取得し、渡された文字列にカンマ区切りで格納 | setStringForTargetSpanFieldSql | void | nothing | NO | OFF | 1 | Set the String For Target Span Field Sql object COMP-3の対応をするためCOMP-3のフィールドが含まれるかどうか判定するクエリを生成 | **about line** 1300 | | | | | | | parseCompressionPartFromDB | int | nothing | NO | ON | 1 | dbの取得結果を読み込みながらcomp3の開始位置と長さの配列をセットする KEY_COLUMN_LENはこれらの関数のみで使う定数とするので関数の直下でundef | **about line** 1400 | | | | | | | buildDataSymbolString | void | local | OK | ON | 1 | 開始位置から長さの間にCOMP-3がある時、それを避ける形でchCharMapを連結する処理 | **about line** 1500 | | | | | | | updateKeyForChangedRecord | int | main | OK | OFF | 2 | 文字列として渡されたIDのレコードに対してキーのupdateを行う | **about line** 1600 | | | | | | | insertRecordFromBuffer | int | main | OK | OFF | 2 | INSERT予定のデータをInsert分に変換し発行 | **about line** 1700 | | | | | | | updateRecordFromBuffer | int | main | OK | OFF | 2 | UPDATE予定のデータをUpdate文に変換し発行 | **about line** 1800 | | | | | | | deleteRecordFromBuffer | int | main | OK | OFF | 2 | DELETE予定のデータをDELETE文に変換し発行 | checkInsertBuffer | int | nothing | NO | OFF | 1 | Insert予定のデータがBufferに溜まっているか確認し、溜まっているなら処理 | checkUpdateBuffer | int | nothing | NO | OFF | 0 | UPDATE予定のデータがBufferに溜まっているか確認し、溜まっているなら処理 | checkDeleteBuffer | int | nothing | NO | OFF | 1 | DELETE予定のデータがBufferに溜まっているか確認し、溜まっているなら処理 | initFieldObj | void | nothing | NO | OFF | 3 | フィールドオブジェクトを初期化 | **about line** 1900 | | | | | | | InitDB_Table | int | nothing | NO | OFF | 1 | ここで作るDB_Tableオブジェクトを初期化 | getNextFieldObj | int | nothing | NO | OFF | 7 | Get the Next Field Obj object 指定されたフィールドオブジェクトを返す なければ最後のオブジェクトを初期化して返す | getDBMReadWriteFlg | int | mana | OK | ON | 0 | 別スレッド等から管理用DBの状態をチェック | **about line** 2000 | | | | | | | getDBReadWriteFlg | int | main | OK | ON | 0 | 別スレッド等からDBの状態をチェック | DB_checkConnected | int | nothing | NO | OFF | 9 | コネクションの接続確認 | DB_M_PING | int | mana | OK | ON | 0 | Lock用コネクションに接続確認 これでConnectionがLostしないように | DB_PING | int | main | OK | ON | 0 | 通常用コネクションに接続確認 これでConnectionがLostしないように | **about line** 2100 | | | | | | | DB_Ping_Reconnect | void | main | OK | OFF | 3 | 接続の確認と接続がなかった場合再接続する関数 | M_Rollback | int | mana | OK | OFF | 0 | 管理用接続ロールバック | M_Commit | int | nothing | NO | ON | 3 | コミットをかける処理 | M_OPEN | int | mana | OK | OFF | 1 | Lock用コネクション開始 | **about line** 2200 | | | | | | | M_RECORD_UNLOCK | int | mana | OK | ON | 0 | レコードロックの削除処理 | **about line** 2300 | | | | | | | M_RECORD_LOCK | int | mana | OK | ON | 0 | レコードロックの追加処理 | M_LockWait | int | main | OK | ON | 1 | M_LOCKを一定時間待たせるように調整 | **about line** 2400 | | | | | | | isStatusLockPattern | int | nothing | NO | ON | 1 | 渡されたステータスがロックのパターンに該当したら非ゼロを返す | **about line** 2500 | | | | | | | buildGetLockStateSQL | void | nothing | NO | ON | 1 | 現在のファイルロックの状況を取得するSQLを生成する | **about line** 2700 | | | | | | | M_LOCK | int | nothing | NO | ON | 1 | テーブルロック(管理テーブルレコード更新) | **about line** 2800 | | | | | | | M_UNLOCK | int | local | OK | ON | 1 | テーブルアンロック | **about line** 2900 | | | | | | | __M_CLOSE | int | main | OK | OFF | 1 | Lock用コネクション終了 | err_exit | void | main | OK | OFF | 0 | 出口処理 | mystrncatStrict | int | nothing | NO | OFF | 4 | strncatの代わりにmainの後ろにsubstrをつなぐ そのときに長さが足りるかどうかをチェック | **about line** 3000 | | | | | | | mystrncat | char * | nothing | NO | OFF | 104 | strncatの代わりにmainの後ろにsubstrをつなぐ strcatだと\0に対応できないので長さ分をmemcpy | __mysql_failure | int | nothing | NO | ON | 1 | mysqlエラー処理 | __a_mysql_failure | int | nothing | NO | ON | 1 | mysqlエラー処理 | move_to_cob_for_bin | void | nothing | NO | OFF | 1 | 文字列をcobolに転写する関数(binary) | DB_Free_Result | void | nothing | NO | OFF | 0 | DBのfetch領域の開放 | **about line** 3100 | | | | | | | changeSpace2Zero | char * | nothing | NO | OFF | 1 | 値がスペースの時に0に置き換える | changeWildcard | char * | nothing | NO | OFF | 0 | 値が入れられていない時に_(ワイルドカード)に置き換える | dataEscapeCopy | int | nothing | NO | OFF | 3 | dataをエスケープしながらコピー(mysql) | **about line** 3200 | | | | | | | dataEscapeCopyforLike | int | nothing | NO | OFF | 1 | dataをエスケープしながらコピー(like mysql) | dataConvertHexCopy | int | nothing | NO | OFF | 3 | 与えられたバイト列をHexを示す文字に変換して文字列にコピー (別途同等な関数が存在するので) | **about line** 3300 | | | | | | | convertData2HEXCharacterStr | int | nothing | NO | ON | 3 | 与えられたバイト列をHexを示す文字に変換して文字列にコピー | setHexCharacterFromBinary | int | nothing | NO | OFF | 4 | Set the Hex Character From Binary object 与えられたバイト列をHexを示す文字に変換して文字列にコピー | setIdStringConditionLowerCase | int | nothing | NO | OFF | 3 | Set the Id String Condition Lower Case object Where句を作る際のIdの最低値をセット(通常の場合はNULL文字) | **about line** 3400 | | | | | | | setTableName | void | nothing | NO | OFF | 1 | Set the Table Name object DBのTableNameを格納 テーブル名の-RDBを除去 | matchTableStatus | int | nothing | NO | OFF | 5 | テーブルのステータスが入力文字列と一致しているか検証 | getTableStatusWithIndex | char | nothing | NO | OFF | 2 | Get the Table Status With Index object テーブルのアクセスステータスを取得 | setTableStatusWithIndex | void | nothing | NO | OFF | 7 | Set the Table Status With Index object テーブルのアクセスステータスを設定 | setTableStatus | void | nothing | NO | OFF | 13 | Set the Table Status object テーブルのアクセスステータスを設定 | varLength | int | nothing | NO | OFF | 5 | cobolから関数が呼ばれた時のvarNum番目の変数のサイズを取得 | **about line** 3500 | | | | | | | isPackedOnCobField | int | nothing | NO | ON | 1 | cobolから関数が呼ばれた時のvarNum番目の変数がpackedか判定 | searchFieldNumber | int | local | OK | OFF | 1 | 対象フィールド名のフィールド番号を返す | **about line** 3600 | | | | | | | confirmTableExistsByName | char | local | OK | OFF | 0 | 指定のテーブル名がデータベース上に存在するか調べる(ViewかTableかのステータスを返す) | setFieldLengthQuery | void | nothing | NO | OFF | 1 | Set the Field Length Query object フィールドの長さを取得するためのクエリの生成を行う | **about line** 3700 | | | | | | | comporseFieldStructure | int | local | OK | OFF | 7 | Field情報の構造体の中身をとってくる | getFieldLength | int | main | OK | OFF | 3 | Get the Field Length object 対象フィールドの長さを返す | **about line** 3800 | | | | | | | replacePaddingCharacter | void | nothing | NO | OFF | 1 | 対象の文字列から必要のないパディングを除去しながら | targetIsPackedDecimal | int | main | OK | OFF | 1 | 対象テーブルの対象の絡む位置にPackedDecimalが含まれるかどうかを返す | **about line** 3900 | | | | | | | countPackedDecimal | int | main | OK | OFF | 1 | 対象テーブルの対象の絡む位置にPackedDecimalが含まれる数を返す | setFieldSpecChrConvNecessary | char * | main | OK | OFF | 2 | Set the Field Spec Chr Conv Necessary object 第3引数にMID(,)を与え必要に応じてchCharMapをつなぐ | **about line** 4000 | | | | | | | getFieldSpecifiedElement | char * | main | OK | OFF | 1 | Get the Field Specified Element object 第3引数に ITEM,?,?を返す | getFieldSpecified | char * | main | OK | OFF | 6 | Get the Field Specified object 第3引数にMID(?,?)を返す | getFileStatus | char * | nothing | NO | OFF | 0 | Get the File Status object ファイルのオープンモードを文字列で取得 | **about line** 4100 | | | | | | | getFileStatusOrgnization | char | nothing | NO | OFF | 4 | Get the File Status Orgnization object ファイルのオープンモードのファイル編成を文字で取得 | getFileStatusAccess | char | nothing | NO | OFF | 0 | Get the File Status Access object ファイルのオープンモードのアクセスモードを文字で取得 | **about line** 4200 | | | | | | | setFileStatus | void | nothing | NO | OFF | 5 | Set the File Status object ファイルのオープンモードをセット | initSortKeyforTableObj | void | nothing | NO | ON | 1 | 指定のソートキーを初期化 フラグを立て直す必要があるときに先に呼んでもらう | changeSortKeyforTableObj | void | nothing | NO | ON | 1 | 指定のソートキーをセットする 引数で与えられたオブジェクトの使っているキーのフラグを立てる initSortKeyforTableObjを先に呼んで0初期化をすれば設定を入れ替えられる | **about line** 4300 | | | | | | | checkSortKeyNameforTableObj | int | nothing | NO | OFF | 1 | 指定のソートキーがいずれかのKeyの名前と一致するか | addSortKeyNameFromTableObj | void | nothing | NO | OFF | 2 | Keyの名前が存在するならその名前でソートをかけるべき | addSortKeyNameAllFromTableObj | void | nothing | NO | OFF | 0 | addSortKeyNameFromTableObjのラッパーとして全部を確認しながらつなぐ | **about line** 4400 | | | | | | | lineupColumnNames | void | nothing | NO | OFF | 1 | カンマ区切りでKeyとなる対象のフィールドを並べる 第2引数に当たる文字列に対象の文字列をつないでいくため戻り値なし | setTableNameAfterStr | int | nothing | NO | OFF | 4 | Set the Table Name After Str object 調整したテーブル名を追加 句を作成 返り値はつなげた文字列の長さ | **about line** 4700 | | | | | | | DB_Initialize | int | mana | OK | ON | 0 | 設定ファイルの読み込みや初期設定 | formatFieldnameWhenCopying | int | nothing | NO | ON | 4 | DB_Selectの際のフィールド名をコピー OCCURSの添字に対して前ゼロがあるときは取り除く | buildQueryStringtargetDataForWhere | int | nothing | NO | OFF | 1 | DB_Selectの際のWhere句のデータ部分をつなげる 対象がデータそのもののときは対象の長さを基準 対象がカラム名のときはmid(item,,)の形でデータを示す ->データが取れなかったら1 | **about line** 5200 | | | | | | | DB_Select | int | main | OK | OFF | 0 | DBへのSELECT 元ソースRDBへのSELECTへの対応 | **about line** 5300 | | | | | | | DB_Read | int | main | OK | OFF | 0 | DBへのリード ラッパーとして、初期のエラーチェックのみを行いDB_Read_wrappedに渡す | setReadQueryStringOrderId | void | nothing | NO | OFF | 3 | Set the Read Query String Order Id object Readのクエリに対してORDER BY idを追加する | setReadQueryStringLast | void | nothing | NO | OFF | 7 | Set the Read Query String Last object Readのクエリに対して最後のLIMIT部分を追加する 処理内容と直接関係はなく共通で複数使われているので関数 | **about line** 5400 | | | | | | | DB_Read_postLock | int | nothing | NO | OFF | 1 | ロックで待ちが発生したときにデータを取り直す | **about line** 5700 | | | | | | | DB_Read_wrapped | int | main | OK | OFF | 2 | readの中身の処理 | **about line** 5800 | | | | | | | concatKeyQueryStringHex | int | nothing | NO | OFF | 3 | 値を受け取ってKeyのクエリ文字列をつなげる(条件の単一のものをsub function化) | concatKeyQueryStringSingle | int | nothing | NO | ON | 1 | 値を受け取ってKeyのクエリ文字列をつなげる(条件の単一のものをsub function化) | concatKeyQueryString | int | nothing | NO | ON | 0 | 値を受け取ってKeyのクエリ文字列をつなげる | **about line** 5900 | | | | | | | set_DB_Read_query_has_invalid_key3 | int | main | OK | OFF | 1 | Set the DB Read query has invalid key3 object DB_ReadのINVALIDKey際のクエリをつなぐ関数 keyの3番目 | **about line** 6000 | | | | | | | set_DB_Read_query_has_invalid_key2 | int | main | OK | OFF | 1 | Set the DB Read query has invalid key3 object DB_ReadのINVALIDKey際のクエリをつなぐ関数 keyの2番目 | set_DB_Read_query_has_invalid_key1 | int | main | OK | OFF | 1 | Set the DB Read query has invalid key3 object DB_ReadのINVALIDKey際のクエリをつなぐ関数 keyの1番目 | set_DB_Read_query_has_invalid_key | int | nothing | NO | OFF | 6 | Set the DB Read query has invalid key object DB_ReadのINVALIDKey際のクエリをつなぐ関数(ラッパー) keyの何番目かによって関数を再呼び出し | **about line** 6100 | | | | | | | DB_getRecordLock | int | nothing | NO | ON | 1 | レコードロックの共有メモリを作成 memcached(キーバリューストア)に書き込む用に変更 | DB_setRecordUnLock | int | nothing | NO | ON | 8 | 確保したレコードロックの解放 memcached(キーバリューストア)に書き込む用に変更 | **about line** 6200 | | | | | | | DB_Read_for_update | int | nothing | NO | OFF | 1 | INVALIDの時に対象を取得するためだけの機能 UpdateではLockmodeが変わらないので、Lockmodeの代わりに変更対象のデータを設定 | **about line** 6400 | | | | | | | DB_Read_for_update_wrapped | int | main | OK | OFF | 1 | wrrapされたDB_Read_for_update | **about line** 6500 | | | | | | | DB_Update | int | main | OK | OFF | 0 | 変更関数 | **about line** 6700 | | | | | | | existsDuplicateKey | int | main | OK | OFF | 1 | insertの際にkeyかぶりのcheckを行う | DB_Insert | int | main | OK | OFF | 0 | 追加関数 | **about line** 6800 | | | | | | | DB_Delete | int | main | OK | OFF | 0 | 削除関数 (直前に読んだ行を削除する) | **about line** 6900 | | | | | | | setLogicalAndPhysicalTableName | char * | nothing | NO | ON | 1 | Set the Logical And Physical Table Name object 初期値のときのテーブルの論理名、物理名を取得(物理名の後ろをNULL埋めし,論理名を返す) | setStringforSelectWhereWithRDB | void | nothing | NO | ON | 2 | Set the Stringfor Select Where With R D B object SELECT の条件 (RDBのとき) をつなぐ処理を関数化 | **about line** 7100 | | | | | | | DB_F_Open | int | nothing | NO | ON | 0 | ファイルオープン | **about line** 7200 | | | | | | | DB_F_Close | int | main | OK | ON | 0 | ファイルクローズ | DB_F_Close_wrapped | int | nothing | NO | ON | 2 | DB_F_Closeの Wrapper | **about line** 7300 | | | | | | | DB_Open | int | main | OK | ON | 0 | DBコネクションのオープン | closeAllTableObject | void | main | OK | OFF | 1 | テーブルオブジェクトをなぞって順番にcloseしていく / | DB_Close | int | both | OK | ON | 0 | DBのコネクションをクローズ その前にすべてのテーブルオブジェクトの情報をクローズ状態に | **about line** 7400 | | | | | | | DB_Scratch | int | nothing | NO | OFF | 0 | RDBファイルの条件指定を削除 | DB_Trunc | int | main | OK | OFF | 1 | ファイルの中身削除 | **about line** 7600 | | | | | | | DB_Start | int | main | OK | OFF | 0 | 検索Key(Start対応)設定 | **about line** 7700 | | | | | | | DB_Transaction | int | local | OK | ON | 8 | トランザクション開始 | DB_Rollback | int | local | OK | ON | 7 | ロールバック | DB_Commit | int | local | OK | ON | 7 | コミット | **about line** 7800 | | | | | | | strLpadcpy | void | nothing | NO | OFF | 1 | 第一引数の文字列に台に引数の文字列を | getIntConvertOrigPtoOrderP | char * | nothing | NO | OFF | 1 | Get the Int Convert Orig Pto Order P object ソートしていないIDをソートしたIDに振替 --------- ## function #### char *map_source_func = NULL; - #### int MT_Initialize(); - #### int myConfDebugFlg; - ### about 0200 #### char hex2asciiU_value[256][2] = { - #### int DB_Select(char *,...); - #### int DB_Read(char *,char *,char *,char *,...); - #### int DB_Read_wrapped(char *,DB_TABLE_OBJ *,char *,char *,int []); - #### int DB_Update(char *,char *,char *); - #### int DB_Insert(char *iPName,char *iLName,char *iItem); - #### int DB_Delete(char *iPName); - #### int DB_Close(); - #### int DB_Scratch(char *); - #### int DB_Trunc(char *); - #### int DB_Start(char*,char*,char*,char*); - #### char *mystrncat(char * ,int ,const char *,int ); - #### int __M_CLOSE(const char*,int); - #### char *getAssignPName(char **,char *); //assign用のenv問い合わせ - #### DBReaded *initDBReaded(DBReaded *); - #### int removeDBReaded(DBReaded *); - #### int destroyDBReaded(DB_TABLE_OBJ *); - #### int destroyDBInsert(DB_TABLE_OBJ *); - #### int destroyDBUpdate(DB_TABLE_OBJ *); - #### int destroyDBDelete(DB_TABLE_OBJ *); - #### void setDBID(DBReaded *, char *, int, int); - #### int pushDBReaded(DB_TABLE_OBJ *, DBReaded *); - #### int pushDBInsert(DB_TABLE_OBJ *,DBReaded *); - #### int pushDBUpdate(DB_TABLE_OBJ *,DBReaded *); - #### int popDBReaded(DB_TABLE_OBJ *,char *); - #### int getDataDBReaded(DB_TABLE_OBJ *,char *); - #### int setReadedRecordFromDBResult(DB_TABLE_OBJ *,MYSQL_RES *); - #### int setInsertRecord(DB_TABLE_OBJ *,char *,int ); - #### int setUpdateRecord(DB_TABLE_OBJ *,char *,int ); - #### int setDeleteRecord(DB_TABLE_OBJ *); - #### int insertRecordFromBuffer(DB_TABLE_OBJ *); - #### int updateRecordFromBuffer(DB_TABLE_OBJ *); - #### int deleteRecordFromBuffer(DB_TABLE_OBJ *); - #### void initFieldObj(DB_FIELD_OBJ *); - #### int InitDB_Table(DB_TABLE_OBJ *); - #### int existsDuplicateKey(DB_TABLE_OBJ *,char *); - #### int DB_Read_for_update(char *,char *,char *,DBReaded *); - #### int DB_Read_for_update_wrapped(char *,DB_TABLE_OBJ *,char *,DBReaded *,int []); - #### int matchTableStatus(DB_TABLE_OBJ *,char *); - #### void setTableStatus(DB_TABLE_OBJ *,char ,int ); - #### char getTableStatusWithIndex(DB_TABLE_OBJ *,int ); - #### char *getFileStatus(DB_TABLE_OBJ *); - ### about 0300 #### char getFileStatusOrgnization(DB_TABLE_OBJ *); - #### char getFileStatusAccess(DB_TABLE_OBJ *); - #### void setFileStatus(char *,DB_TABLE_OBJ *); - #### int concatKeyQueryString(char *strSql, int *sqlstrLen, char *strKeyVal, int keyLen, char *strFeildSpec); - #### int set_DB_Read_query_has_invalid_key3(DB_TABLE_OBJ *targetTable,char *strSql,int *sqlstrLen); - #### int set_DB_Read_query_has_invalid_key2(DB_TABLE_OBJ *targetTable,char *strSql,int *sqlstrLen); - #### int set_DB_Read_query_has_invalid_key1(DB_TABLE_OBJ *targetTable,char *strSql,int *sqlstrLen); - #### int set_DB_Read_query_has_invalid_key(DB_TABLE_OBJ *targetTable,char *strSql,int *sqlstrLen,int keyNum); - #### char *setLogicalAndPhysicalTableName(char *strPhysicalName); - #### char *getIntConvertOrigPtoOrderP(DB_TABLE_OBJ *targetTable); - #### void lineupColumnNames(DB_TABLE_OBJ *targetTable, char *strLineup); - #### int updateKeyForChangedRecord(DB_TABLE_OBJ *targCluster, char *keyList, char *errorString); - 文字列として渡されたIDのレコードに対してキーのupdateを行う * @param targCluster ターゲットとなるテーブルのオブジェクト * @param keyList カンマ区切り文字列のIDのリスト * @param errorString * @return int 0成功,その他:失敗 => 失敗の対応は外でなんとかする方向に * @author n.koyama * @date 20200217 #### void closeAllTableObject(); - #### void strLpadcpy(char *,char* ,char ,int); - #### int dataEscapeCopy(char *, char *, int); - #### int dataConvertHexCopy(char *, char *, int); - #### int countPackedDecimal(char *tName, char *strStart, char *strLength); - #### int DB_Table_num = 0; //Tableの有効数(次に作るオブジェクトの添え字番号) - #### char DB_intAutocommit = 0; - #### char *DB_filestat; //COBOLから渡されたステータス変数 - #### char *source_file_name; - #### char *source_user_name; - #### int intCurTableNum = 0; //intCurTableNum(直前にどこのテーブルにアクセスしたのか保存しておく) - ### about 0400 #### int __m_mysql_fail(const char *funcName,int funcLine) - m_mysqlエラー処理 * @param funcName * @param funcLine * @return int #### FUNCTION_RESULT dbConnectInfoInit(DB_CONNECT_INFO **dbObj) - DB接続の構造体の初期化 * @param dbObj * @return FUNCTION_RESULT 関数が成功したか失敗したかをenumで返す #### FUNCTION_RESULT settingDBfromArg(DB_CONNECT_INFO *dbObj, char *server,char *user,char *pass,char * database, int port) - DB接続の構造体に値をセット * @param dbObj * @param server * @param user * @param pass * @param database * @param port * @return FUNCTION_RESULT #### int M_Transaction() - トランザクション開始 / ### about 0500 #### void chgChar(char *origText,char target,char replacement,char splitter) - 特定の文字を置換する * @param origText 対象文字列 * @param target 対象文字 * @param replacement 置換後文字 * @param splitter これで囲まれた中だけ判定。指定しないときは0 * @author n.koyama #### void turnOperandCharacter(char *strOperand) - 受け取った文字列中の<>の記号を反転させる 演算子中にNULLが含まれることはない前提 * @param strOperand * @author n.koyama * @date 2021-08-12 #### char *getAssignPName(char **determinePName,char *iPName) - Get the Assign P Name object assignがある時のために,環境変数にテーブル名があるか確認 * @param determinePName 確認するテーブル名 * @param iPName * @return char* 問い合わせた結果のテーブル名,なかったら元のiPName #### int getTargTable(DB_TABLE_OBJ *arrTable,char *iPName,int intTableMax) - Get the Targ Table object テーブルオブジェクト をphysicalな名前で取得 * @param arrTable * @param iPName * @param intTableMax * @return int ### about 0600 #### int getTargTableLogic(DB_TABLE_OBJ *arrTable,char *iLName,int intTableMax) - Get the Targ Table Logic object テーブルオブジェクト をlogicalな名前で取得 * @param arrTable * @param iLName * @param intTableMax * @return int #### void initDBWhere(DBWhere *targetWhere) - DBWhereを初期化 * @param targetWhere #### void unsetStrWhere(DB_TABLE_OBJ *targetObj) - strWhereを空にする * @param targetObj * @date 20210426 * @author n.koyama #### DBReaded *initDBReaded(DBReaded *item) - DBReaded(先読みデータ)に読み込むデータ構造を初期化 * @param item 読み込んだデータの構造体 * @return DBReaded* 初期化された * @author n.koyama * @date 20161213 ### about 0700 #### int removeDBReaded(DBReaded *delItem) - DBReaded(先読みデータ)に読み込むデータ構造をループで全て初期化 * @param delItem 読み込んだデータの構造体 * @return int 実行が成功したかどうか エラーなら1 * @author n.koyama * @date 20161213 #### int destroyDBReaded(DB_TABLE_OBJ *targCluster) - DBReaded(先読みデータ)に読み込むデータ構造をループで全て初期化 * @param targCluster 読み込んだデータの構造体 * @return int 実行が成功したかどうか エラーなら1 * @author n.koyama * @date 20161213 #### int destroyDBInsert(DB_TABLE_OBJ *targCluster) - DBInsert(insert)に読み込むデータ構造をループで全て初期化 * @param targCluster 読み込んだデータの構造体 * @return int 実行が成功したかどうか エラーなら1 * @author n.koyama * @date 20170117 #### int destroyDBUpdate(DB_TABLE_OBJ *targCluster) - DBUpdate(update,insert)に読み込むデータ構造をループで全て初期化 * @param targCluster 読み込んだデータの構造体 * @return int 実行が成功したかどうか エラーなら1 * @author n.koyama * @date 20170117 ### about 0800 #### int destroyDBDelete(DB_TABLE_OBJ *targCluster) - DBInsert(insert)に読み込むデータ構造をループで全て初期化 * @param targCluster 読み込んだデータの構造体 * @return int 実行が成功したかどうか エラーなら1 * @author n.koyama * @date 20170117 #### void setDBprevID(DB_TABLE_OBJ *targCluster, char *dbId, int dbOriginalId, int idLength) - DBをReadしたときなどにdbのID+元のIDを同時にセット * @param targCluster SetするIDに対応する構造体 * @param dbId dbのID(INDEXEDファイルのときは並びなので意味が余りなくなる) * @param dbOriginalId dbの元のID * @param idLength dbの元のIDの長さ * @author n.koyama * @date 20200413 未使用になっているようなのでそのままidを追加(プロトタイプ宣言もなし) #### void setDBID(DBReaded *targCluster, char *dbId, int dbOriginalId,int idLength) - DBをReadしたときなどにdbのID+元のIDを同時にセット * @param targCluster SetするIDに対応する構造体 * @param dbId dbのID(INDEXEDファイルのときは並びなので意味が余りなくなる) * @param dbOriginalId dbの元のID * @param idLength dbの元のIDの長さ * @author n.koyama * @date 20180412 #### int pushDBReaded(DB_TABLE_OBJ *targCluster, DBReaded *item) - DBReaded(先読みデータ)に読み込んだデータを1行push * @param targCluster 読み込んだデータを挿入しておく塊 * @param item 読み込んだデータの構造体 * @return int 実行が成功したかどうか エラーなら1 * @author n.koyama * @date 20161213 #### int pushDBInsert(DB_TABLE_OBJ *targCluster,DBReaded *item) - DBInsert(insert用)のデータを1行push * @param targCluster 読み込んだデータを挿入しておく塊 * @param item 読み込んだデータの構造体 * @return int 実行が成功したかどうか エラーなら1 * @author n.koyama * @date 20170117 ### about 0900 #### int pushDBUpdate(DB_TABLE_OBJ *targCluster,DBReaded *item) - DBUpdate(update,insert用)のデータを1行push * @param targCluster 読み込んだデータを挿入しておく塊 * @param item 読み込んだデータの構造体 * @return int 実行が成功したかどうか エラーなら1 * @author n.koyama * @date 20170117 #### int pushDBDelete(DB_TABLE_OBJ *targCluster,DBReaded *item) - DBDelete(update,insert用)のデータを1行push * @param targCluster 読み込んだデータを挿入しておく塊 * @param item 読み込んだデータの構造体 * @return int 実行が成功したかどうか エラーなら1 * @author n.koyama * @date 20170117 #### int popDBReaded(DB_TABLE_OBJ *targCluster,char *dataItem) - DBReaded(先読みデータ)に読み込んだデータを1行取得し、取得したものをリストから削除 * @param targCluster 読み込んだデータを挿入しておく塊 * @param dataItem データを返すポインタ * @return int 実行が成功したかどうか エラーなら1 * @author n.koyama * @date 20161213 * @date 20200218 => 使用を取りやめたため、以降調整なし ### about 1000 #### int getDataDBReaded(DB_TABLE_OBJ *targCluster,char *dataItem) - Get the Data D B Readed object 第二引数にDBReadの現在の一行をコピー * @param targCluster 読み込んだデータを挿入しておく塊 * @param dataItem データを返すポインタ * @return int 0固定 * @author n.koyama #### int setReadedRecordFromDBResult(DB_TABLE_OBJ *TableObj,MYSQL_RES *result) - Set the Readed Record From D B Result object DBからReadした結果を構造体に格納 * @param TableObj 対象の構造体 * @param result 取得したデータ * @return int 読んだ行数 #### int setInsertRecord(DB_TABLE_OBJ *TableObj,char *result,int f_length) - Set the Insert Record object DBにINSERT予定のデータを構造体に格納 * @param TableObj 対象の構造体 * @param result 取得したデータ * @param f_length 読んだ行数 * @return int * @author n.koyama * @date 20170117 ### about 1100 #### int setUpdateRecord(DB_TABLE_OBJ *TableObj,char *result,int f_length) - Set the Update Record object DBにUPDATE予定のデータを構造体に格納 * @param TableObj 対象の構造体 * @param result 取得したデータ * @param f_length * @return int 読んだ行数,エラーの時-1 * @author n.koyama * @date 20170117 #### int setDeleteRecord(DB_TABLE_OBJ *TableObj) - Set the Delete Record object DBにUPDATE予定のデータを構造体に格納 * @param TableObj 対象の構造体 * @return int 取得したデータ * @author n.koyama * @date 20170117 #### int getFieldNumFromName(DB_CONNECT_INFO *Connection, MYSQL_RES *mysql_result, char *filed_name) - Get the Field Num From Name object mysql_resutとフィールドネームを渡して対応するインデックスを取得 * @param Connection DB接続オブジェクト * @param mysql_result DBの結果オブジェクト * @param filed_name 参照で返すフィールド名 * @return int * @author n.koyama * @date 20200206 ### about 1200 #### void discoverInsertedID(DB_CONNECT_INFO *mysqlConn, char *keyList) - 直前にInsertしたIDを取得し、渡された文字列にカンマ区切りで格納 * @param mysqlConn 直前にInsertを投げたはずのコネクション * @param keyList カンマ区切り文字列のIDのリスト * @author n.koyama * @date 20200217 #### void setStringForTargetSpanFieldSql(char *tName, int start_num, int length_num, char *strSql) - Set the String For Target Span Field Sql object COMP-3の対応をするためCOMP-3のフィールドが含まれるかどうか判定するクエリを生成 * @param tName テーブル名 * @param start_num 範囲の先頭 * @param length_num 範囲の長さ * @param strSql 返すための文字列 * @author n.koyama * @date 20200310 ### about 1300 #### int parseCompressionPartFromDB(MYSQL_RES *mysql_res, int row_num, int start_array[KEY_COLUMN_LEN], int length_array[KEY_COLUMN_LEN]) - dbの取得結果を読み込みながらcomp3の開始位置と長さの配列をセットする KEY_COLUMN_LENはこれらの関数のみで使う定数とするので関数の直下でundef * @param mysql_res DBの結果のオブジェクト * @param row_num COMPの含まれる行数 * @param start_array DBから取れた結果の開始位置 * @param length_array DBから取れた結果の長さ * @return int 無条件で0 ### about 1400 #### void buildDataSymbolString(DB_CONNECT_INFO *Connection, char *tableName, int start_num, int column_length, char *returnString) - 開始位置から長さの間にCOMP-3がある時、それを避ける形でchCharMapを連結する処理 * @param Connection DB情報のオブジェクト * @param tableName 対象のテーブル名 * @param start_num 開始位置 * @param column_length 長さ * @param returnString * @author n.koyama ### about 1500 #### int updateKeyForChangedRecord(DB_TABLE_OBJ *targCluster, char *keyList, char *errorString) - 文字列として渡されたIDのレコードに対してキーのupdateを行う * @param targCluster ターゲットとなるテーブルのオブジェクト * @param keyList カンマ区切り文字列のIDのリスト * @param errorString * @return int 0成功,その他:失敗 => 失敗の対応は外でなんとかする方向に * @author n.koyama * @date 20200217 ### about 1600 #### int insertRecordFromBuffer(DB_TABLE_OBJ *targCluster) - INSERT予定のデータをInsert分に変換し発行 * @param targCluster 対象の構造体 * @return int 取得したデータ * @author n.koyama * @date 20170117 ### about 1700 #### int updateRecordFromBuffer(DB_TABLE_OBJ *targCluster) - UPDATE予定のデータをUpdate文に変換し発行 * @param targCluster 対象の構造体 * @return int 読んだ行数 * @author n.koyama * @date 20170117 ### about 1800 #### int deleteRecordFromBuffer(DB_TABLE_OBJ *targCluster) - DELETE予定のデータをDELETE文に変換し発行 * @param targCluster 対象の構造体 * @return int 読んだ行数 * @author n.koyama * @date 20170118 #### int checkInsertBuffer(DB_TABLE_OBJ *targCluster) - Insert予定のデータがBufferに溜まっているか確認し、溜まっているなら処理 * @param targCluster 対象の構造体 * @return int 読んだ行数 * @author n.koyama * @date 20170119 #### int checkUpdateBuffer(DB_TABLE_OBJ *targCluster) - UPDATE予定のデータがBufferに溜まっているか確認し、溜まっているなら処理 * @param targCluster 対象の構造体 * @return int 読んだ行数 * @author n.koyama * @date 20170119 #### int checkDeleteBuffer(DB_TABLE_OBJ *targCluster) - DELETE予定のデータがBufferに溜まっているか確認し、溜まっているなら処理 * @param targCluster 対象の構造体 * @return int 読んだ行数 * @author n.koyama * @date 20170119 #### void initFieldObj(DB_FIELD_OBJ *fieldObj) - フィールドオブジェクトを初期化 * @param fieldObj 対象のフィールドオブジェクト ### about 1900 #### int InitDB_Table(DB_TABLE_OBJ *TableObj) - ここで作るDB_Tableオブジェクトを初期化 * @param TableObj 対象のテーブルオブジェクト * @return int #### int getNextFieldObj(DB_TABLE_OBJ *TableObj,char *iLName) - Get the Next Field Obj object 指定されたフィールドオブジェクトを返す なければ最後のオブジェクトを初期化して返す * @param TableObj * @param iLName 検索対象フィールドネーム * @return int フィールドのインデックス #### int getDBMReadWriteFlg() - 別スレッド等から管理用DBの状態をチェック * @return int 接続があり, reading_or_writing状態ではなければ0 * @author n.koyama * @date 20161025 ### about 2000 #### int getDBReadWriteFlg() - 別スレッド等からDBの状態をチェック * @return int 接続があり, reading_or_writing状態ではなければ0 * @author n.koyama * @date 20161025 #### int DB_checkConnected(MYSQL *mysqlConnector) - コネクションの接続確認 * @param mysqlConnector チェック対象のコネクション * @return int * @author n.koyama * @date 20211026 #### int DB_M_PING() - Lock用コネクションに接続確認 これでConnectionがLostしないように * @return int #### int DB_PING() - 通常用コネクションに接続確認 これでConnectionがLostしないように * @return int ### about 2100 #### void DB_Ping_Reconnect(DB_CONNECT_INFO *local_dbConn) - 接続の確認と接続がなかった場合再接続する関数 * @param local_dbConn 接続の確認をする接続情報 * @author n.koyama * @date 20230705 #### int M_Rollback() - 管理用接続ロールバック * @return int #### int M_Commit(MYSQL *local_mysqlConn) - コミットをかける処理 * @param local_mysqlConn DB接続 * @return int * @details 20211206 DELETEをかける処理で必要となったので復活 * @author koyama #### int M_OPEN() - Lock用コネクション開始 * @return int ### about 2200 #### int M_RECORD_UNLOCK(char *iPName, unsigned long long iRowNum) - レコードロックの削除処理 * @details 関数呼び出し自体は別スレッド管理の呼び出し元から呼び出される * @param iPName * @param iRowNum * @return int * @author koyama * @date 20211206 ### about 2300 #### int M_RECORD_LOCK(char *iPName, unsigned long long iRowNum, int semaphoreKeyId) - レコードロックの追加処理 * @param iPName 対象テーブル名 * @param iRowNum 行番号 * @param semaphoreKeyId セマフォのキーを入れる(memcachedに変更したので固定で0?) * @return int #### int M_LockWait(char *iPName) - M_LOCKを一定時間待たせるように調整 * @param iPName ロックを取りたいテーブル名 * @return int ### about 2400 #### int isStatusLockPattern(char *strDecision) - 渡されたステータスがロックのパターンに該当したら非ゼロを返す * @param strDecision 条件指定 * @return int 0 : ロックのパターンではない,1 : ファイルロックのパターン,2 : レコードロックのパターン * @author n.koyama ### about 2500 #### void buildGetLockStateSQL(char *ioSqlStr,char *manageTableName,char *whereTableName, char *whereSchemaName) - 現在のファイルロックの状況を取得するSQLを生成する * @param ioSqlStr 参照で渡される文字列.SQLをセットする * @param manageTableName 管理情報のテーブル名 * @param whereTableName 条件となるテーブル * @author koyama * @date 20211201 ### about 2700 #### int M_LOCK(MYSQL *local_mysqlConn,char *iPName) - テーブルロック(管理テーブルレコード更新) * @param local_mysqlConn DB接続 * @param iPName 対象テーブル名 * @return int 0のときロックなし ### about 2800 #### int M_UNLOCK(DB_CONNECT_INFO *local_dbConn, char *iPName, const char *funcName, int funcLine) - テーブルアンロック * @param local_dbConn DB接続 * @param iPName 対象テーブル名 * @param funcName 親関数名 * @param funcLine 親行数 * @return int ### about 2900 #### int __M_CLOSE(const char *funcName, int funcLine) - Lock用コネクション終了 * @param funcName 親関数名 * @param funcLine 親行数 * @return int #### void err_exit(int rc) - 出口処理 * @param rc #### int mystrncatStrict(char *mainstr ,int mainLength ,const char *substr,int subLength,int maxLength) - strncatの代わりにmainの後ろにsubstrをつなぐ そのときに長さが足りるかどうかをチェック * @param mainstr つなげる元の文字列ポインタ * @param mainLength 元の文字列の長さ * @param substr つなげる文字列のポインタ * @param subLength つなげる文字列の長さ * @param maxLength 元の文字列の最大長 * @return int ### about 3000 #### char *mystrncat(char *mainstr ,int mainLength ,const char *substr,int subLength) - strncatの代わりにmainの後ろにsubstrをつなぐ strcatだと\0に対応できないので長さ分をmemcpy * @param mainstr つなげる元の文字列ポインタ * @param mainLength 元の文字列の長さ * @param substr つなげる文字列のポインタ * @param subLength つなげる文字列の長さ * @return char* つなげる元の文字列ポインタ #### int __mysql_failure(const char *funcName,int funcLine) - mysqlエラー処理 * @param funcName 親関数名 * @param funcLine 親行数 * @return int #### int __a_mysql_failure(MYSQL* mysql_conn,const char *funcName, int funcLine) - mysqlエラー処理 * @param mysql_conn エラー処理をする対象のコネクション * @param funcName 親関数名 * @param funcLine 親行数 * @return int #### void move_to_cob_for_bin(char *cob_dat, const char *dat,long len) - 文字列をcobolに転写する関数(binary) * @param cob_dat * @param dat * @param len * @author iida #### void DB_Free_Result(MYSQL_RES **result){ - DBのfetch領域の開放 * @param result ### about 3100 #### char *changeSpace2Zero(char *mainstr, int mainLength, char *substr, int subLength) - 値がスペースの時に0に置き換える * @param mainstr コピー先の文字列ポインタ * @param mainLength フィールド名 * @param substr フィールド名 * @param subLength フィールドの長さ * @return char* * @author n.koyama #### char *changeWildcard(char *mainstr ,int mainLength ,char *substr,int subLength){ - 値が入れられていない時に_(ワイルドカード)に置き換える * @param mainstr * @param mainLength * @param substr * @param subLength * @return char* #### int dataEscapeCopy(char *origText,char *copyText,int itemLength){ - dataをエスケープしながらコピー(mysql) * @param origText 対象の文字列 * @param copyText コピーする先の文字列 * @param itemLength 変換対象の文字列帳 * @return int itemlengthの変わったもの ### about 3200 #### int dataEscapeCopyforLike(char *origText, char *copyText, int itemLength) - dataをエスケープしながらコピー(like mysql) * @param origText 対象の文字列 * @param copyText コピーする先の文字列 * @param itemLength 変換対象の文字列帳 * @return int itemlengthの変わったもの * @date 20240502 #### int dataConvertHexCopy(char *origText, char *copyText, int itemLength) - 与えられたバイト列をHexを示す文字に変換して文字列にコピー (別途同等な関数が存在するので) * @param origText SQL接続文字列(バイナリなのでNULL含む) * @param copyText 追加する先の文字列 * @param itemLength バイナリは長さがわからないので長さを渡す * @return int 追加した文字列長 * @author koyama * @date 20240502 ### about 3300 #### int convertData2HEXCharacterStr(char *targv, char *addtext, int fromLen) - 与えられたバイト列をHexを示す文字に変換して文字列にコピー * @details * @param targv:追加する先の文字列, * @param addtext:SQL接続文字列(バイナリなのでNULL含む) * @param fromLen:バイナリは長さがわからないので長さを渡す * @return 追加した文字列長 * @author koyama * @date 20220413 #### int setHexCharacterFromBinary(char *toString, char *fromString,char copyLength) - Set the Hex Character From Binary object 与えられたバイト列をHexを示す文字に変換して文字列にコピー * @param toString つなぐIDを入れる文字列ポインタ * @param fromString つなぐID * @param copyLength 長さ * @return int 0x80超えていた数 * @author koyama * @date 20210903 #### int setIdStringConditionLowerCase(char *strId) - Set the Id String Condition Lower Case object Where句を作る際のIdの最低値をセット(通常の場合はNULL文字) * @param strId つなぐIDを入れる文字列ポインタ * @return int つないだバイト数 * @author koyama * @date 20210901 ### about 3400 #### void setTableName(DB_TABLE_OBJ *targObj,char *iPName) - Set the Table Name object DBのTableNameを格納 テーブル名の-RDBを除去 * @param targObj テーブルオブジェクト * @param iPName assign後のPNameを渡す #### int matchTableStatus(DB_TABLE_OBJ *targTable,char *compStr){ - テーブルのステータスが入力文字列と一致しているか検証 * @param targTable 対象のテーブルオブジェクト * @param compStr 比較するステータス文字列 * @return int #### char getTableStatusWithIndex(DB_TABLE_OBJ *targTable,int index){ - Get the Table Status With Index object テーブルのアクセスステータスを取得 * @param targTable 対象のテーブルオブジェクト * @param index ステータスのインデックス(文字位置) * @return char #### void setTableStatusWithIndex(DB_TABLE_OBJ *targTable,char status,int index){ - Set the Table Status With Index object テーブルのアクセスステータスを設定 * @param targTable 対象のテーブルオブジェクト * @param status セットするステータス * @param index ステータスのインデックス(文字位置) #### void setTableStatus(DB_TABLE_OBJ *targTable,char funcIni,int status){ - Set the Table Status object テーブルのアクセスステータスを設定 * @param targTable 対象のテーブルオブジェクト * @param funcIni 実行した関数を示すイニシャル * @param status セットするステータス #### int varLength(int varNum) - cobolから関数が呼ばれた時のvarNum番目の変数のサイズを取得 * @param varNum パラメータの番号 * @return int サイズ ### about 3500 #### int isPackedOnCobField(int varNum) - cobolから関数が呼ばれた時のvarNum番目の変数がpackedか判定 * @param varNum 引数のvarNum番目 * @return int 0=packed以外,1=packed #### int searchFieldNumber(DB_CONNECT_INFO *dbObj, MYSQL_RES *queryResult, char *targetFieldName) - 対象フィールド名のフィールド番号を返す * @param dbObj DB接続オブジェクト * @param queryResult 結果オブジェクト * @param targetFieldName 何番目か知りたいフィールド名 * @return int 対象フィールド名のフィールド番号(0番目がhitした時も見つからなかったときも0を返す) * @author n.koyama * @date 20161020 ### about 3600 #### char confirmTableExistsByName(DB_CONNECT_INFO *dbObj, char *strTableName) - 指定のテーブル名がデータベース上に存在するか調べる(ViewかTableかのステータスを返す) * @param dbObj DB接続オブジェクト * @param strTableName テーブル名 * @return char v:Viewが存在する,t:テーブルが存在する,0x00:存在しない * @author n.koyama * @date 20161020 #### void setFieldLengthQuery(char *strSql, char *tableName,char *fieldName) - Set the Field Length Query object フィールドの長さを取得するためのクエリの生成を行う * @param strSql SQLを格納する文字列 * @param tableName 対象のテーブル名 * @param fieldName 対象のフィールド名 ### about 3700 #### int comporseFieldStructure(DB_CONNECT_INFO *db_object,DB_TABLE_OBJ *targetTable,char *fieldName,int fieldNum) - Field情報の構造体の中身をとってくる * @param db_object DB情報オブジェクト * @param targetTable 対象のテーブルオブジェクト * @param fieldName 取りたいフィールド * @param fieldNum 新規の可能性があるので値を入れてくる * @return int #### int getFieldLength(char *tableName,char *fieldName) - Get the Field Length object 対象フィールドの長さを返す * @param tableName テーブルの論理名 * @param fieldName フィールド名 * @return int ### about 3800 #### void replacePaddingCharacter(char *toFieldName, char *fromFieldName) - 対象の文字列から必要のないパディングを除去しながら * @param toFieldName * @param fromFieldName #### int targetIsPackedDecimal(char *tName, char *fieldName) - 対象テーブルの対象の絡む位置にPackedDecimalが含まれるかどうかを返す * @param tName 対象のテーブル名 * @param fieldName 対象のカラムのフィールド名 * @return int * @author n.koyama * @date 20210817 -> 20220205 ### about 3900 #### int countPackedDecimal(char *tName, char *strStart, char *strLength) - 対象テーブルの対象の絡む位置にPackedDecimalが含まれる数を返す * @param tName テーブル名 * @param strStart カラムの開始位置 * @param strLength カラムの長さ * @return int * @author n.koyama * @date 20200220 #### char *setFieldSpecChrConvNecessary(char *tName, char *fieldName, char *retStr) - Set the Field Spec Chr Conv Necessary object 第3引数にMID(,)を与え必要に応じてchCharMapをつなぐ * @param tName 対象テーブル名 * @param fieldName 対象フィールド名 * @param retStr MID(?,?)を入れるポインタ20以上の長さがないとエラーになるかも * @return char* ### about 4000 #### char *getFieldSpecifiedElement(char *tName, char *fieldName, char *retStr) - Get the Field Specified Element object 第3引数に ITEM,?,?を返す * @param tName 対象のテーブル名 * @param fieldName 対象のフィールド名 * @param retStr ITEM,?,?を入れるポインタ20以上の長さがないとエラーになるかも * @return char* * @author n.koyama * @date 20200228 #### char *getFieldSpecified(char *tName, char *fieldName, char *retStr) - Get the Field Specified object 第3引数にMID(?,?)を返す * @param tName 対象のテーブル名 * @param fieldName 対象のフィールド名 * @param retStr 対象のフィールド名 * @return char* * @author n.koyama * @date 20200228 #### char *getFileStatus(DB_TABLE_OBJ *targetTable) - Get the File Status object ファイルのオープンモードを文字列で取得 * @param targetTable * @return char* * @date 20171016 * @author n.koyama ### about 4100 #### char getFileStatusOrgnization(DB_TABLE_OBJ *targetTable) - Get the File Status Orgnization object ファイルのオープンモードのファイル編成を文字で取得 * @param targetTable * @return char * @date 20171016 * @author n.koyama #### char getFileStatusAccess(DB_TABLE_OBJ *targetTable) - Get the File Status Access object ファイルのオープンモードのアクセスモードを文字で取得 * @param targetTable * @return char * @date 20171016 * @author n.koyama ### about 4200 #### void setFileStatus(char *charTarget,DB_TABLE_OBJ *targetTable) - Set the File Status object ファイルのオープンモードをセット * @param charTarget * @param targetTable * @date 20171114 * @author n.koyama #### void initSortKeyforTableObj(DB_TABLE_OBJ *targetTable) - 指定のソートキーを初期化 フラグを立て直す必要があるときに先に呼んでもらう * @param targetTable * @date 20210817 * @author n.koyama #### void changeSortKeyforTableObj(DB_TABLE_OBJ *targetTable, char *targetFieldName) - 指定のソートキーをセットする 引数で与えられたオブジェクトの使っているキーのフラグを立てる initSortKeyforTableObjを先に呼んで0初期化をすれば設定を入れ替えられる * @param targetTable * @param targetFieldName * @date 20210817 * @author n.koyama ### about 4300 #### int checkSortKeyNameforTableObj(DB_TABLE_OBJ *targetTable, char *targetFieldName) - 指定のソートキーがいずれかのKeyの名前と一致するか * @param targetTable * @param targetFieldName * @return int * @date 20210908 * @author n.koyama #### void addSortKeyNameFromTableObj(char *strOrdercondtion, DB_TABLE_OBJ *targetTable, char *targetFieldName) - Keyの名前が存在するならその名前でソートをかけるべき * @param strOrdercondtion * @param targetTable * @param targetFieldName * @date 20210908 * @author n.koyama #### void addSortKeyNameAllFromTableObj(char *strOrdercondtion, DB_TABLE_OBJ *targetTable) - addSortKeyNameFromTableObjのラッパーとして全部を確認しながらつなぐ * @param strOrdercondtion * @param targetTable ### about 4400 #### void lineupColumnNames(DB_TABLE_OBJ *targetTable, char *strLineup) - カンマ区切りでKeyとなる対象のフィールドを並べる 第2引数に当たる文字列に対象の文字列をつないでいくため戻り値なし * @param targetTable * @param strLineup * @author n.koyama * @date 20200213 #### int setTableNameAfterStr(char *strSql, DB_TABLE_OBJ *targetTable, char chrKindFlg) - Set the Table Name After Str object 調整したテーブル名を追加 句を作成 返り値はつなげた文字列の長さ * @param strSql * @param targetTable * @param chrKindFlg * @return int * @author n.koyama * @date 20150812 * @details INVALIDの時はテーブルの並び替えをしない date :20150825 ### about 4700 #### int DB_Initialize(char *esp) - 設定ファイルの読み込みや初期設定 * @param esp * @return int #### int formatFieldnameWhenCopying(char *tofieldName, char *fromfieldName) - DB_Selectの際のフィールド名をコピー OCCURSの添字に対して前ゼロがあるときは取り除く * @param tofieldName * @param fromfieldName * @return int * @author n.koyama * @date 20200319 #### int buildQueryStringtargetDataForWhere(DB_TABLE_OBJ *targCluster,char *setfieldName) - DB_Selectの際のWhere句のデータ部分をつなげる 対象がデータそのもののときは対象の長さを基準 対象がカラム名のときはmid(item,,)の形でデータを示す ->データが取れなかったら1 * @param targCluster * @param setfieldName * @return int * @author n.koyama * @date 20200319 ### about 5200 #### int DB_Select(char *iPName, ...) - DBへのSELECT 元ソースRDBへのSELECTへの対応 * @param iPName 対象テーブル名 * @param ... 条件 * @return int ### about 5300 #### int DB_Read(char *iMode,char *iPName,char *oItem,char *lockMode,...) - DBへのリード ラッパーとして、初期のエラーチェックのみを行いDB_Read_wrappedに渡す * @param iMode 読んでくる方法の指定 * @param iPName 対象のテーブル名 * @param oItem 読み出した結果の一行 * @param lockMode UNLOCKの指定があるかどうか * @param ... KEYの指定 * @return int #### void setReadQueryStringOrderId(char *strSql, int *sqlstrLen) - Set the Read Query String Order Id object Readのクエリに対してORDER BY idを追加する * @param strSql つなげる対象のSQL * @param sqlstrLen 文字列長 => つなげたあとの長さも返す #### void setReadQueryStringLast(char *strSql, int *sqlstrLen) - Set the Read Query String Last object Readのクエリに対して最後のLIMIT部分を追加する 処理内容と直接関係はなく共通で複数使われているので関数 * @param strSql つなげる対象のSQL * @param sqlstrLen 文字列長 => つなげたあとの長さも返す ### about 5400 #### int DB_Read_postLock(MYSQL *Connection, DB_TABLE_OBJ *targObj, char *oItem) - ロックで待ちが発生したときにデータを取り直す * @param targObj データを取得するターゲット. 基本的にデータの入れ直し等は無いはず * @param oItem 参照渡しで持ってくるデータを入れ直す先 * @return int 成否のフラグを返す. 成功なら0 * @author n.koyama * @date 20221107 ### about 5700 #### int DB_Read_wrapped(char *iMode,DB_TABLE_OBJ *targObj,char *oItem,char *lockMode,int keyexist[3]) - readの中身の処理 * @param iMode 読んでくる方法の指定 * @param targObj 対象のテーブルオブジェクト * @param oItem 読み出した結果の一行 * @param lockMode UNLOCKの指定があるかどうか * @param keyexist KEYを使うかどうかの配列 * @return int * @n.koyama * @date 20191211 ### about 5800 #### int concatKeyQueryStringHex(char *strSql, int *sqlstrLen, char *strKeyVal, int keyLen, char *strFeildSpec) - 値を受け取ってKeyのクエリ文字列をつなげる(条件の単一のものをsub function化) * @param strSql 作成中のSQL文字列 * @param sqlstrLen 作成中のSQL文字列の長さ(バイナリが含まれる可能性があるので終端がわかるように) * @param strKeyVal 比較対象文字列 * @param keyLen 比較対象文字列の長さ * @param strFeildSpec つなぐ対象のMID文字列 * @return int * @author n.koyama * @date 20210901 #### int concatKeyQueryStringSingle(char *strSql, int *sqlstrLen, char *strKeyVal, int keyLen, char *strFeildSpec) - 値を受け取ってKeyのクエリ文字列をつなげる(条件の単一のものをsub function化) * @param strSql 作成中のSQL文字列 * @param sqlstrLen 作成中のSQL文字列の長さ(バイナリが含まれる可能性があるので終端がわかるように) * @param strKeyVal 比較対象文字列 * @param keyLen 比較対象文字列の長さ * @param strFeildSpec つなぐ対象のMID文字列 * @return int * @author n.koyama * @date 20210901 #### int concatKeyQueryString(char *strSql, int *sqlstrLen, char *strKeyVal, int keyLen, char *strFeildSpec) - 値を受け取ってKeyのクエリ文字列をつなげる * @param strSql 作成中のSQL文字列 * @param sqlstrLen 作成中のSQL文字列の長さ(バイナリが含まれる可能性があるので終端がわかるように) * @param strKeyVal 比較対象文字列 * @param keyLen 比較対象文字列の長さ * @param strFeildSpec つなぐ対象のMID文字列 * @return int * @author n.koyama ### about 5900 #### int set_DB_Read_query_has_invalid_key3(DB_TABLE_OBJ *targetTable,char *strSql,int *sqlstrLen) - Set the DB Read query has invalid key3 object DB_ReadのINVALIDKey際のクエリをつなぐ関数 keyの3番目 * @param targetTable * @param strSql * @param sqlstrLen * @return int 問題なし 0 問題あり 1 * @author n.koyama * @date 20171121 ### about 6000 #### int set_DB_Read_query_has_invalid_key2(DB_TABLE_OBJ *targetTable,char *strSql,int *sqlstrLen) - Set the DB Read query has invalid key3 object DB_ReadのINVALIDKey際のクエリをつなぐ関数 keyの2番目 * @param targetTable * @param strSql * @param sqlstrLen * @return int 問題なし 0 問題あり 1 * @author n.koyama * @date 20171121 #### int set_DB_Read_query_has_invalid_key1(DB_TABLE_OBJ *targetTable,char *strSql,int *sqlstrLen) - Set the DB Read query has invalid key3 object DB_ReadのINVALIDKey際のクエリをつなぐ関数 keyの1番目 * @param targetTable * @param strSql * @param sqlstrLen * @return int 問題なし 0 問題あり 1 * @author n.koyama * @date 20171121 #### int set_DB_Read_query_has_invalid_key(DB_TABLE_OBJ *targetTable,char *strSql,int *sqlstrLen,int keyNum) - Set the DB Read query has invalid key object DB_ReadのINVALIDKey際のクエリをつなぐ関数(ラッパー) keyの何番目かによって関数を再呼び出し * @param targetTable * @param strSql * @param sqlstrLen * @param keyNum * @return int 問題なし 0 問題あり 1 * @author n.koyama * @date 20171121 ### about 6100 #### int DB_getRecordLock(DB_TABLE_OBJ *targObj) - レコードロックの共有メモリを作成 memcached(キーバリューストア)に書き込む用に変更 * @param targObj 対象を特定するテーブルオブジェクト * @return int * @author n.koyama #### int DB_setRecordUnLock(DB_TABLE_OBJ *targObj) - 確保したレコードロックの解放 memcached(キーバリューストア)に書き込む用に変更 * @param targObj 開放する対象のテーブルオブジェクト * @return int * @author n.koyama ### about 6200 #### int DB_Read_for_update(char *iMode, char *iPName, char *oItem, DBReaded *ReadedCur) - INVALIDの時に対象を取得するためだけの機能 UpdateではLockmodeが変わらないので、Lockmodeの代わりに変更対象のデータを設定 * @param iMode モードの指定 * @param iPName ファイル名(Pysical) * @param oItem 検索対象? * @param ReadedCur 前回読み込みオブジェクト * @return int * @author n.koyama * @date 20171121 ### about 6400 #### int DB_Read_for_update_wrapped(char *iMode,DB_TABLE_OBJ *targObj,char *oItem,DBReaded *ReadedCur,int keyexist[]) - wrrapされたDB_Read_for_update * @param iMode Readのモード * @param targObj 対象のテーブルオブジェクト * @param oItem 検索対象の文字列 * @param ReadedCur 結果を返すオブジェクト * @param keyexist keyの存在を示す配列 * @return int ### about 6500 #### int DB_Update(char *iPName,char *iLName,char *iItem) - 変更関数 * @param iPName 対象のテーブル名(physical) * @param iLName 対象のテーブル名(Logical) * @param iItem 更新する文字列 * @return int 実行が成功したかどうか エラーなら1 ### about 6700 #### int existsDuplicateKey(DB_TABLE_OBJ *TableObj,char *iItem) - insertの際にkeyかぶりのcheckを行う * @param TableObj 検索対象のテーブルのオブジェクト * @param iItem 検索をする * @return int #### int DB_Insert(char *iPName,char *iLName,char *iItem) - 追加関数 * @param iPName 対象のテーブル名(physical) * @param iLName 対象のテーブル名(Logical) * @param iItem 挿入する文字列 * @return int 実行が成功したかどうか エラーなら1 ### about 6800 #### int DB_Delete(char *iPName) - 削除関数 (直前に読んだ行を削除する) * @param iPName 対象テーブルネーム * @return int ### about 6900 #### char *setLogicalAndPhysicalTableName(char *strPhysicalName) - Set the Logical And Physical Table Name object 初期値のときのテーブルの論理名、物理名を取得(物理名の後ろをNULL埋めし,論理名を返す) * @param strPhysicalName 入力変数,語尾のスペースを\0うめ,outputNameLnameになるはず * @return char* * @author n.koyama * @date 20161031 #### void setStringforSelectWhereWithRDB(char *strSql, int *sqlstrLen, DB_TABLE_OBJ *targObj) - Set the Stringfor Select Where With R D B object SELECT の条件 (RDBのとき) をつなぐ処理を関数化 * @param strSql 条件をつなぐSQL文字列 * @param sqlstrLen 条件をつなぐSQL文字列の長さ * @param targObj テーブルオブジェクト ### about 7100 #### int DB_F_Open(char *strMode,char *iPName,char *lockMode,char *ioidlist,char *cArgc,...) - ファイルオープン * @param strMode ファイルオープンモード * @param iPName 対象テーブル名 * @param lockMode ファイルロックモード * @param ioidlist IDのリスト(古い仕様で使っていない) * @param cArgc INVALIDのときのキーの指定の数 * @param ... INVALIDのときのキーの指定 * @return int 成否 ### about 7200 #### int DB_F_Close(char *ioidlist,char *iPName) - ファイルクローズ * @param ioidlist IDのリスト(古い仕様の名残で使っていない) * @param iPName 対象のテーブル名 * @return int 成否 #### int DB_F_Close_wrapped(DB_CONNECT_INFO *local_dbConn, DB_TABLE_OBJ *targObj) - DB_F_Closeの Wrapper * @param local_dbConn DBのコネクション(内部ではこれだけを使う) * @param targObj Closeする対象のテーブルのオブジェクト * @return int 成否 ### about 7300 #### int DB_Open() - DBコネクションのオープン * @return int #### void closeAllTableObject() - テーブルオブジェクトをなぞって順番にcloseしていく / #### int DB_Close() - DBのコネクションをクローズ その前にすべてのテーブルオブジェクトの情報をクローズ状態に * @return int ### about 7400 #### int DB_Scratch(char *iPName) - RDBファイルの条件指定を削除 * @param iPName 対象のテーブル名 * @return int #### int DB_Trunc(char *iPName) - ファイルの中身削除 * @param iPName ファイル名(テーブル名) * @return int ### about 7600 #### int DB_Start(char *iPName,char *iLabel,char *iMark,char *iValue) - 検索Key(Start対応)設定 * @param iPName ファイル名(テーブル名) * @param iLabel 指定カラムを示すラベル * @param iMark オペレータ * @param iValue オペレータと比較する値 * @return int ### about 7700 #### int DB_Transaction(DB_CONNECT_INFO *mysqlDBStruct) - トランザクション開始 * @param mysqlDBStruct 接続オブジェクト * @return int int 実行が成功したかどうか エラーなら1 #### int DB_Rollback(DB_CONNECT_INFO *mysqlDBStruct) - ロールバック * @param mysqlDBStruct 接続オブジェクト * @return int int 実行が成功したかどうか エラーなら1 #### int DB_Commit(DB_CONNECT_INFO *mysqlDBStruct) - コミット * @param mysqlDBStruct 接続オブジェクト * @return int 実行が成功したかどうか エラーなら1 ### about 7800 #### void strLpadcpy(char *data1, char *data2,char pad, int strLength) - 第一引数の文字列に台に引数の文字列を * @param data1 * @param data2 * @param pad * @param strLength * @author n.koyama * @date 20150825 #### char *getIntConvertOrigPtoOrderP(DB_TABLE_OBJ *targetTable) - Get the Int Convert Orig Pto Order P object ソートしていないIDをソートしたIDに振替 * @param targetTable * @return char* * @author n.koyama * @date 20150825 # end