2012-11-17 3 views
0

웹 페이지의 다양한 텍스트 상자에서 입력 한 내용을 기반으로 SQL 쿼리를 정의 할 때 "최선의 방법"으로 간주 될 내용을 알고 싶습니다.다양한 입력 텍스트 상자에서 SQL 쿼리 정의하기

예를 들어, 웹 사이트에 8 개의 입력 텍스트 상자가있는 경우 여러 개의 if 문을 사용하여 끝낼 SQL 쿼리를 평가해야 할 필요가 있습니까?

즉.

var sql 
var a = document.getElementByID('tb1').value 
var b = document.getElementByID('tb2').value 
var c = document.getElementByID('tb3').value 
var d = document.getElementByID('tb4').value 

if (a.length > 0 && b.length > 0 && c.length > 0 && d.length > 0) { 

sql = "SELECT * FROM table WHERE [firstname] = '"+a+"' AND [middlename] = '"+b+"' AND [lastname] = '"+c"' AND [organization] = '"+d+"'" 

} 

ps. 또한 클라이언트 측 Microsoft Jet을 사용하므로 서버가 없거나 정렬되지 않습니다.

+2

나는 내가 이것에 초보자 오전 이후로는 전문가를 요구하고, 따라서 왜 – Pointy

+0

:-)하여 "최악의 사례"범주에 그것을 넣어하는 경향이있을 거라고 생각. 위의 내용을 어떻게 확장 성있는 것으로 재구성 할 수 있습니까? –

+0

글쎄, 제트에 대해 많이 알지 못한다. 특히 "prepared statement"의 개념을 지원하는지는 모른다. 그것은 일반적으로 다른 RDBMS로 일을하는 올바른 방법으로 간주됩니다. – Pointy

답변

0

쿼리를 저장하고 Ms 액세스/Jet/ACE에서 사용할 수 있습니다. ADODB 명령 개체와 레코드 세트를 사용하는 몇 가지 메모가 있지만 어느 명령 개체가 가장 적합합니까?

Set rs = Server.CreateObject("ADODB.Recordset") 
Set cmd = Server.CreateObject("ADODB.Command") 

cmd.ActiveConnection = objConn 
cmd.CommandType = adCmdStoredProc 

cmd.CommandText = "MySavedQuery" 
cmd.Parameters.Append cmd.CreateParameter("@FirstName", adVarWChar, adParamInput, 50, varA) 
cmd.Parameters.Append cmd.CreateParameter("@MiddleName", adVarWChar, adParamInput, 50, varB) 

rs.LockType = adLockOptimistic 
rs.CursorType = adOpenStatic 
rs.CursorLocation = adUseClient 
rs.Open cmd.Execute 
관련 문제