Hoe kan ik SQL server de queries, die ik vanuit een asp-pagina stuur, laten loggen? Deze functie lijkt me handig met het debuggen. Ik weet dat er in MySQL een dergelijke functie zit, maar ik heb deze in MS SQL server nog niet kunnen vinden. Hebben jullie nog andere tips voor het debuggen van ingewikkelde queries met veel variabelen erin?
Voorbeeldje van een querie met veel variabelen:
strSQL = "UPDATE document "
strSQL = strSQL & "SET "
if IsNull(nParentDocID) then
strSQL = strSQL & "parent_document_id = null"
else
strSQL = strSQL & "parent_document_id = " & nParentDocID
end if
strSQL = strSQL & ",category_id = " & nCatID
strSQL = strSQL & ",template_id = " & nTemplateID
strSQL = strSQL & strSQLPosition
strSQL = strSQL & ",title = '" & replace(sTitle,"'","''") & "'"
strSQL = strSQL & ",sub_title = '" & replace(sSubTitle,"'","''") & "'"
strSQL = strSQL & ",link_text = '" & replace(sLinkText,"'","''") & "'"
strSQL = strSQL & ",abstract = '" & replace(sAbstract,"'","''") & "'"
strSQL = strSQL & ",content = '" & replace(sContent,"'","''") & "'"
strSQL = strSQL & ",search_keywords = '" & replace(sSearchKey,"'","''") & "'"
strSQL = strSQL & ",search_description = '" & replace(sSearchDesc,"'","''") & "'"
strSQL = strSQL & ",last_updated_by = " & nUserID
strSQL = strSQL & ",checked_out_by = null"
strSQL = strSQL & ",date_checked_out = null"
strSQL = strSQL & ",date_last_updated = #" & ConvertDate(now()) & "#"
strSQL = strSQL & ",document_status = 'checked-in'"
strSQL = strSQL & ",approval_status = 'working'"
strSQL = strSQL & ",file_name = '" & replace(sFileName,"'","''") & "'"
strSQL = strSQL & ",version = '" & sVersion & "'"
if IsNull(dStartDate) then
strSQL = strSQL & ",date_start=null"
else
strSQL = strSQL & ",date_start=#" & ConvertDate(dStartDate) & "#"
end if
if IsNull(dEndDate) then
strSQL = strSQL & ",date_end=null"
else
strSQL = strSQL & ",date_end=#" & ConvertDate(dEndDate) & "#"
end if
strSQL = strSQL & ",[public] = '" & sPublic & "'"
strSQL = strSQL & ",note = '" & replace(sNote,"'","''") & "' "
strSQL = strSQL & ",hidden = '" & sHidden & "' "
strSQL = strSQL & ",type = '" & sType & "' "
strSQL = strSQL & "WHERE document_id = " & nDocID
Zie hier maar eens snel de fout uit te halen. Wanneer je de (foutieve) ingevulde querie echter uit SQL server kan halen, dan zou de fout veel makkelijker te vinden zijn.
Bij voorbaat dank
Voorbeeldje van een querie met veel variabelen:
strSQL = "UPDATE document "
strSQL = strSQL & "SET "
if IsNull(nParentDocID) then
strSQL = strSQL & "parent_document_id = null"
else
strSQL = strSQL & "parent_document_id = " & nParentDocID
end if
strSQL = strSQL & ",category_id = " & nCatID
strSQL = strSQL & ",template_id = " & nTemplateID
strSQL = strSQL & strSQLPosition
strSQL = strSQL & ",title = '" & replace(sTitle,"'","''") & "'"
strSQL = strSQL & ",sub_title = '" & replace(sSubTitle,"'","''") & "'"
strSQL = strSQL & ",link_text = '" & replace(sLinkText,"'","''") & "'"
strSQL = strSQL & ",abstract = '" & replace(sAbstract,"'","''") & "'"
strSQL = strSQL & ",content = '" & replace(sContent,"'","''") & "'"
strSQL = strSQL & ",search_keywords = '" & replace(sSearchKey,"'","''") & "'"
strSQL = strSQL & ",search_description = '" & replace(sSearchDesc,"'","''") & "'"
strSQL = strSQL & ",last_updated_by = " & nUserID
strSQL = strSQL & ",checked_out_by = null"
strSQL = strSQL & ",date_checked_out = null"
strSQL = strSQL & ",date_last_updated = #" & ConvertDate(now()) & "#"
strSQL = strSQL & ",document_status = 'checked-in'"
strSQL = strSQL & ",approval_status = 'working'"
strSQL = strSQL & ",file_name = '" & replace(sFileName,"'","''") & "'"
strSQL = strSQL & ",version = '" & sVersion & "'"
if IsNull(dStartDate) then
strSQL = strSQL & ",date_start=null"
else
strSQL = strSQL & ",date_start=#" & ConvertDate(dStartDate) & "#"
end if
if IsNull(dEndDate) then
strSQL = strSQL & ",date_end=null"
else
strSQL = strSQL & ",date_end=#" & ConvertDate(dEndDate) & "#"
end if
strSQL = strSQL & ",[public] = '" & sPublic & "'"
strSQL = strSQL & ",note = '" & replace(sNote,"'","''") & "' "
strSQL = strSQL & ",hidden = '" & sHidden & "' "
strSQL = strSQL & ",type = '" & sType & "' "
strSQL = strSQL & "WHERE document_id = " & nDocID
Zie hier maar eens snel de fout uit te halen. Wanneer je de (foutieve) ingevulde querie echter uit SQL server kan halen, dan zou de fout veel makkelijker te vinden zijn.
Bij voorbaat dank