2016-08-02 13 views
1

この場合、ステータスFの文書をファイルの名前と共にテーブルLOGSに保存する必要があります。forループに基づいてデータベース内の同じレコードを更新します

私のテーブルには、次のような表現が必要:

ID: 1 
FILE:test 
ERROR: id:5,id:9,id:10 

:そうと同じレコードに挿入する必要があり、同じステータスを有する同一ファイル内

ID: Incremented 
FILE: fileNameWithOutExt (name of the file) 
ERROR: errorCode 

しかしすべての文書を私のifステートメントがforループ内にあり、それがxmlファイル内のすべての子を渡しています。ステータスがFのレコードは、同じレコード内で連結する必要があります。

if(status.equals("F")){ 
    elemValue = element.getChild("id").getValue(); 
    String fileNameWithExt = f.getName(); 
    String fileNameWithOutExt = FilenameUtils.removeExtension(fileNameWithExt); 
    saveLogs(fileNameWithOutExt, elemValue); 
} 

private void saveLogs(String fileNameWithOutExt, String elemValue){ 
    String errorCode = "id:"+ elemValue; 
    String query = "INSERT INTO LOGS (FILE,ERROR)VALUES ('"+fileNameWithOutExt+"','"+errorCode+"')"; 
    String content = ""; 
    content = SqlTool.selectOneString("DB", query); 
} 

答えて

0

あなたは挿入命令でのみ更新することはできません。 更新命令を見てみましょう。単純な方法は、次のようなSQLスクリプトを使用することです。

UPDATE MyTable SET [email protected] WHERE [email protected] 

IF @@ROWCOUNT = 0 
    INSERT INTO MyTable (FieldA) VALUES (@FieldA) 
関連する問題