这是什么样的正确模式?我想在最外层函数的Using语句中获取数据库连接(如果连接失败则记录和中止)(或者我真的是那个问题),但是在深层嵌套的最内层函数中使用该连接。我想将给定目录中的所有.csv文件导入到数据库中,进行一些自定义切片和放大。在processthisline()中切割。
是一个try / catch / finally in methodthatwillbecalled(),将db保存到我之后的类属性中?也许还有一些其他模式没有发生在我身上?
public sub methodthatwillbecalled
using db <--obtain connection
processallfiles()
end using
private sub processallfiles
for each file in source directory
processthisfile()
private sub processthisfile
for each line in file
processthisline()
private sub processthisline
split on commas and INSERT to db <--perform work on connection, many, many times
答案 0 :(得分:1)
您可能希望将db对象作为参数一直传递或设置类属性。
如果你设置了class属性,你可能需要确保在每个退出的情况下都关闭连接,所以“使用”就像你拥有它更安全。
如果将DB对象作为参数传递,则每个插入的连接都将保持打开状态,如果出现错误,应该正确关闭。
您绝对不希望将连接放在任何其他子目录中,因为这会为每个文件或行打开和关闭(取决于您放置它的位置)。