TOOL更新_Ver0.1の『バグ情報など』に14(1)(2)(3).を追加した。3月9日からの続き。
TOOL更新_Ver0.1の『バグ情報など』に14(1)(2)(3).を追加した。3月9日からの続き。
1.201103092038のTOOL修正内容.txt 3月9日からの続き。
b.から修正した。2011/03/29にver0.1(201103092038)がvectorに載りました。 補足:「a.」は3月9日のブログ参照
b.『バグ情報など』(http://kazpgm.ddo.jp/bugInfo.html)の14.(1)をツールに反映しました。
14.(1)1番目が自TBL(CS)でない場合(例:TBL(CA)のとき)、自動作成◎自動生成されたSQLが
「FROM left join m_category ca on (cs.category = ca.category) m_subcategory cs 」になってしまいSQLエラーになる。
「FROM m_subcategory cs left join m_category ca on (cs.category = ca.category) 」になるように修正する。
■201103092038_からの作成例\kaz_PHP自動作成◎自動生成お助けTOOL\ 『kaz_PHP自動作成◎自動生成お助けTOOL』のVBA『module1』 修正 ■kaz_PHP自動作成◎自動生成お助けTOOL\ 『kaz_PHP自動作成◎自動生成お助けTOOL』のVBA『module1』 修正 1582行目 <<修正前>> If is現TblItem(j) = False Then TBL略名 = LCase(Trim(Cells(j, contTBL略名列))) TBL名 = joinTbl名文字列取得(TBL略名, LCase(Trim(Cells(cont当テーブル略名行, cont当テーブル略名列)))) Else TBL略名 = LCase(Trim(Cells(cont当テーブル略名行, cont当テーブル略名列))) TBL名 = LCase(Cells(cont当テーブルID行, cont当テーブルID列)) & " " & TBL略名 End If If InStr(TBL名たち, TBL名) = 0 Then ' テーブル名たちの中にまだテーブル名が無いときのみ追加する。 TBL名たち = TBL名たち & TBL名 End If <<修正後>> If is現TblItem(j) = False Then TBL略名 = LCase(Trim(Cells(j, contTBL略名列))) TBL名 = joinTbl名文字列取得(TBL略名, LCase(Trim(Cells(cont当テーブル略名行, cont当テーブル略名列)))) Else TBL略名 = LCase(Trim(Cells(cont当テーブル略名行, cont当テーブル略名列))) TBL名 = LCase(Cells(cont当テーブルID行, cont当テーブルID列)) & " " & TBL略名 End If If InStr(TBL名たち, TBL名) = 0 Then ' テーブル名たちの中にまだテーブル名が無いときのみ追加する。 If is現TblItem(j) = False Then TBL名たち = TBL名たち & TBL名 Else TBL名たち = TBL名 & TBL名たち End If End If 2153行 <<修正前>> If is現TblItem(j) = False Then TBL略名 = LCase(Trim(Cells(j, contTBL略名列))) TBL名 = joinTbl名文字列取得(TBL略名, LCase(Trim(Cells(cont当テーブル略名行, cont当テーブル略名列)))) Else TBL略名 = LCase(Trim(Cells(cont当テーブル略名行, cont当テーブル略名列))) TBL名 = LCase(Cells(cont当テーブルID行, cont当テーブルID列)) & " " & TBL略名 End If If InStr(TBL名たち, TBL名) = 0 Then ' テーブル名たちの中にまだテーブル名が無いときのみ追加する。 TBL名たち = TBL名たち & TBL名 End If <<修正後>> If is現TblItem(j) = False Then TBL略名 = LCase(Trim(Cells(j, contTBL略名列))) TBL名 = joinTbl名文字列取得(TBL略名, LCase(Trim(Cells(cont当テーブル略名行, cont当テーブル略名列)))) Else TBL略名 = LCase(Trim(Cells(cont当テーブル略名行, cont当テーブル略名列))) TBL名 = LCase(Cells(cont当テーブルID行, cont当テーブルID列)) & " " & TBL略名 End If If InStr(TBL名たち, TBL名) = 0 Then ' テーブル名たちの中にまだテーブル名が無いときのみ追加する。 If is現TblItem(j) = False Then TBL名たち = TBL名たち & TBL名 Else TBL名たち = TBL名 & TBL名たち End If End If 2624行目 <<修正前>> If is現TblItem(j) = False Then TBL略名 = LCase(Trim(Cells(j, contTBL略名列))) TBL名 = joinTbl名文字列取得(TBL略名, LCase(Trim(Cells(cont当テーブル略名行, cont当テーブル略名列)))) Else TBL略名 = LCase(Trim(Cells(cont当テーブル略名行, cont当テーブル略名列))) TBL名 = LCase(Cells(cont当テーブルID行, cont当テーブルID列)) & " " & TBL略名 End If If InStr(TBL名たち, TBL名) = 0 Then ' テーブル名たちの中にまだテーブル名が無いときのみ追加する。 TBL名たち = TBL名たち & TBL名 End If <<修正後>> If is現TblItem(j) = False Then TBL略名 = LCase(Trim(Cells(j, contTBL略名列))) TBL名 = joinTbl名文字列取得(TBL略名, LCase(Trim(Cells(cont当テーブル略名行, cont当テーブル略名列)))) Else TBL略名 = LCase(Trim(Cells(cont当テーブル略名行, cont当テーブル略名列))) TBL名 = LCase(Cells(cont当テーブルID行, cont当テーブルID列)) & " " & TBL略名 End If If InStr(TBL名たち, TBL名) = 0 Then ' テーブル名たちの中にまだテーブル名が無いときのみ追加する。 If is現TblItem(j) = False Then TBL名たち = TBL名たち & TBL名 Else TBL名たち = TBL名 & TBL名たち End If End If
c.『バグ情報など』(http://kazpgm.ddo.jp/bugInfo.html)の14.(2)をツールに反映しました。
14.(2)「FROM m_subcategory cs left join m_category ca on (cs.category = ca.category) 」のJOINキーの関係で
自動作成◎自動生成されたSQLのWhere文
「WHERE category = $category AND subcategory = $subcategory」のcategoryが
m_categoryのものかm_subcategoryのものかはっきりしないというSQLエラーがでる。
「WHERE cs.category = $category AND cs.subcategory = $subcategory」になる様に修正する。
■201103092038_からの作成例\kaz_PHP自動作成◎自動生成お助けTOOL\ 『kaz_PHP自動作成◎自動生成お助けTOOL』のVBA『module1』 修正 ■kaz_PHP自動作成◎自動生成お助けTOOL\ 『kaz_PHP自動作成◎自動生成お助けTOOL』のVBA『module1』 修正 540行目 <<修正前>> wherePkeyString = wherePkeyString & " AND " & idxPk列順配列(i) & _ " = $" & idxPk列順配列(i) & Chr(13) & Chr(10) <<修正後>> wherePkeyString = wherePkeyString & " AND " & TBL略名 & "." & idxPk列順配列(i) & _ " = $" & idxPk列順配列(i) & Chr(13) & Chr(10) 1734行目 <<修正前>> wherePkeyString = wherePkeyString & " AND " & idxPk列順配列(i) & _ " = $" & idxPk列順配列(i) & Chr(13) & Chr(10) <<修正後>> wherePkeyString = wherePkeyString & " AND " & TBL略名 & "." & idxPk列順配列(i) & _ " = $" & idxPk列順配列(i) & Chr(13) & Chr(10)
d.『バグ情報など』(http://kazpgm.ddo.jp/bugInfo.html)の14.(3)をツールに反映しました。
14.(3)小分類用に自動作成◎自動生成されたSQLのWhere文
「FROM m_extracategory ce left join m_category ca on (ce.category = ca.category)
left join m_subcategory cs on (ce.category = cs.category, ce.subcategory = cs.subcategory) 」
の間違いでSQLエラーがでる。
「FROM m_extracategory ce left join m_category ca on (ce.category = ca.category)
left join m_subcategory cs on (ce.category = cs.category and ce.subcategory = cs.subcategory) 」
になる様に修正する。
■201103092038_からの作成例\kaz_PHP自動作成◎自動生成お助けTOOL\ 『kaz_PHP自動作成◎自動生成お助けTOOL』のVBA『module1』 修正 ■kaz_PHP自動作成◎自動生成お助けTOOL\ 『kaz_PHP自動作成◎自動生成お助けTOOL』のVBA『module1』 修正 4924行目 <<修正前>> Do While 結果シート.Cells(j, cont項目名ID列) <> "" If 結果シート.Cells(j, contPK列) <> "" Then wkStr = wkStr & mainTBL略名 & "." & Trim(LCase(結果シート.Cells(j, cont項目名ID列))) & " = " & _ TBL略名 & "." & Trim(LCase(結果シート.Cells(j, cont項目名ID列))) & ", " End If j = j + 1 Loop If wkStr <> "" Then wkStr = Left(wkStr, Len(wkStr) - Len(", ")) End If <<修正後>> Do While 結果シート.Cells(j, cont項目名ID列) <> "" If 結果シート.Cells(j, contPK列) <> "" Then wkStr = wkStr & mainTBL略名 & "." & Trim(LCase(結果シート.Cells(j, cont項目名ID列))) & " = " & _ TBL略名 & "." & Trim(LCase(結果シート.Cells(j, cont項目名ID列))) & " and " End If j = j + 1 Loop If wkStr <> "" Then wkStr = Left(wkStr, Len(wkStr) - Len(" and ")) End If
2011/03/15 21:00-01:00 2011/03/16 18:00-23:00 ほかのTBLを参照して値を表示するロジック関連を修正したことになる。この、「ほかのTBLを参照」しての自動作成◎自動生成はなかなかな難しい。とっても奥深いので。ダメがでたら手作業で直してもらいたい。。。そう、キーになる項目名が同じであることを前提にロジックを作っている。と言っておこう。ダメが起こるのは大体これのせい。
2011/03/24 22:00-23:00 Vectorに登録依頼しましたver0.1(201103092038)です5日ぐらいしたら見れます。
2011/03/29 0:30 ver0.1(201103092038)がvectorに載りました。