2014-04-29 223 views
0

我正在連接到Sql數據庫和在一個連接我改變我的查詢很多 次,這是我的代碼的基本結構。結構工作正常。連接到SQL數據庫

我有以下問題

1)這是發送不同的查詢到SQL數據庫的正確的方法。

2)這會導致任何內存泄漏或錯誤。

dim conn 

set conn=CreateObject("ADODB.Connection") 

With conn 
.Provider = "Microsoft.Jet.OLEDB.4.0" 
.ConnectionString ="Data Source=C:\MAP_sample.xls;" & "Extended Properties=Excel 8.0;" 
.Open 
End With 

Set rs = CreateObject("ADODB.Recordset") 

Query = "SELECT * FROM [Sheet1$] where StateName='ABC'" 

rs.Open Query,conn 

rs.close 

更改查詢

Query = "SELECT * FROM [Sheet1$] where ID='321'" 

rs.Open Query,conn 
rs.close 

更改查詢

Query = "SELECT * FROM [Sheet1$] where NAME='SMITH'" 

rs.Open Query,conn 
rs.close 

Set rs = nothing 

conn.close 
Set conn = nothing 
+0

你應該考慮使用'使用'塊來處理資源獲取和處理,例如關閉連接是通過'using'來完成的,你不需要明確地調用'close'方法。 –

+0

感謝您的親切幫助 –

回答

0

看起來像傳統的ASP使用Visual Basic。

  1. 這是可能的變種發送查詢之一,這是不壞,有點boilerplate,如建議 - 嘗試重新因素成單獨的類或函數
  2. 沒有,就不會引起內存泄漏或錯誤,你打電話close

以後,您可以調用Open方法重新建立連接到同一個或另一個數據源。

這種方法唯一的問題出現時,你需要有2個記錄同時

,如果你談論一般的代碼的可讀性打開 - 這是更好地使用有意義的變量名

+0

感謝您的親切幫助 –