2014-04-29 4 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 '블록 사용 고려 닫는 연결은'using'에 의해 이루어 지므로'close' 메쏘드를 명시 적으로 호출 할 필요가 없습니다. –

+0

고마워 종류의 도움에 –

답변

0

시각적 기본 클래식 ASP처럼 보이는 쿼리.

  1. 그것이 나쁘지 않다, 쿼리를 보낼 수있는 가능한 변종 중 하나입니다, 조금 boilerplate는 제안으로 - 그것은 어떤 원인 것, 다시 요인을 별도의 클래스 또는 함수
  2. 없음으로 시도 메모리 누수 또는 오류는 close

당신은 나중에 동일한에 대한 연결, 또는 다른 데이터 소스를 다시 설정하기 위해 Open 메서드를 호출 할 수 있습니다를 호출하고있다. 당신이이 레코드는 일반 코드의 가독성에 대해 얘기하면 동시에

에 열이 필요 할 때

이 방법의 유일한 문제는 온다 - 의미있는 변수 이름을 사용하는 것이 좋습니다

+0

고마워 종류의 도움을 위해 –

관련 문제