我正在使用jtdc从MS SQL开发应用程序网络。 这个应用程序通过AsyncTask不断从服务器获取电影文件。 在一次,下载2或3部电影。但它运作不佳。 例如,当我必须下载3个电影文件时,我打印了每个步骤的日志,1和2个文件下载得很好但是最后一个文件没有。我检查了所有代码,但我不知道为什么。此外,还没有打印任何日志(包括尝试捕获)。这是我的代码(在AsyncTask中)。
for (int i = 0; i < movieInfoLists.size(); i++) {
Statement m_Statement3 = conn.createStatement();
Log.d("DOWN", "0");
Log.d("FILEKEY>>", movieInfoLists.get(i).fileKey + "");
ResultSet rs3 = m_Statement3
.executeQuery("SELECT * FROM VIEWDATA WHERE MstKeyId=" + movieInfoLists.get(i).fileKey);
Log.d("DOWN>>", "1");
while (rs3.next()) {
Log.d("r3동작 >>", "1");
try {
Log.d("r3동작 >>", "2");
InputStream input = new ByteArrayInputStream(rs3.getBytes("Phto"));
FileOutputStream output = new FileOutputStream(
new File(Environment.getExternalStorageDirectory().toString() + "/"
+ movieInfoLists.get(i).fileName));
byte[] buffer = new byte[1024];
int n = 0;
long total = 0;
while (-1 != (n = input.read(buffer))) {
total += n;
output.write(buffer, 0, n);
}
output.flush();
output.close();
input.close();
Log.d("r3동작 >>", "3");
} catch (IOException e) {
Log.d("file error 동작 >>", "M1Renewal L.982 "+calCurTime());
appendLog("file down drror ioEx" + "> M1Renewal 1089 L." + "TIME : " + calCurTime());
movieInfoLists.get(i).fileName = defaultMovieListInfo.get(0).fileName;
movieInfoLists.get(i).fileLocalPath = defaultMovieListInfo.get(0).fileLocalPath;
e.printStackTrace();
}catch(Exception e){
e.printStackTrace();
}
Log.d("r3동작 >>", "4");
Log.d("DOWN", "다운완료>>>" + movieInfoLists.get(i).fileName);
}
rs3.close();
m_Statement3.close();
}
这是我的日志。接下来没有更多的日志而不是执行线程。
test.lee D /사이즈&gt;&gt;&gt;:3
test.leeD / FILEKEY&gt;&gt;:55
test.lee D / DOWN&gt;&gt;:1
test.lee D / r3동작&gt;&gt;:1
test.lee D / r3동작&gt;&gt;:2
test.lee D / r3동작&gt;&gt;:3
test.lee D / r3동작&gt;&gt;:4
test.lee D / DOWN:다운완료&gt;&gt;&gt; a.mp4
test.lee D / FILEKEY&gt;&gt;:58
test.lee D / DOWN&gt;&gt;:1
test.lee D / r3동작&gt;&gt;:1
test.lee D / r3동작&gt;&gt;:2
test.lee D / r3동작&gt;&gt;:3
test.lee D / r3동작&gt;&gt;:4
test.lee D / DOWN:다운완료&gt;&gt;&gt; b.mp4
test.lee D / FILEKEY&gt;&gt;:66
test.leetest.lee D / DOWN&gt;&gt;:1
我猜到rs3(ResultSet)是个问题。我为此创立了一个解决方案,但我找不到。我该怎么办?
答案 0 :(得分:0)
&#34; movieInfoLists.get(2).fileKey&#34;有正确的价值吗?似乎rs3.next()返回false。
使用日志打印movieInfoLists.get(2).fileKey和rs3。