코딩ㆍ개발 정보/HTML 연습

[ASP, MSSQL] 쿼리 결과 분기 방법

RioRex 2024. 8. 2.
ASP와 MSSQL을 사용하여 데이터베이스 쿼리 결과가 없을 때 "데이터 없음"이라고 알려주는 방법을 설명드리겠습니다. 아래의 단계에 따라 ASP 스크립트에서 데이터베이스 쿼리 결과가 없을 때 적절한 메시지를 사용자에게 표시할 수 있습니다.

 

1. ASP에서 MSSQL 데이터베이스 쿼리 실행

먼저, ASP 스크립트를 사용하여 MSSQL 데이터베이스에 쿼리를 실행하고, 결과를 확인하는 기본적인 구조를 살펴보겠습니다.

 

<%
' 데이터베이스 연결
Dim conn, rs, sql
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "Provider=SQLOLEDB;Data Source=your_server;Initial Catalog=your_database;User ID=your_username;Password=your_password;"

' 쿼리 실행
sql = "SELECT * FROM your_table WHERE some_condition"
Set rs = conn.Execute(sql)

' 결과가 없는 경우
If rs.EOF Then
    Response.Write "데이터가 없습니다."
Else
    ' 데이터가 있는 경우, 데이터를 출력하는 코드
    Do Until rs.EOF
        Response.Write rs("your_column_name") & "<br>"
        rs.MoveNext
    Loop
End If

' 리소스 해제
rs.Close
Set rs = Nothing
conn.Close
Set conn = Nothing
%>

 

설명:

  1. 데이터베이스 연결: ADODB.Connection 객체를 사용하여 MSSQL 데이터베이스에 연결합니다.
  2. 쿼리 실행: conn.Execute(sql) 메서드를 사용하여 쿼리를 실행하고 결과를 ADODB.Recordset 객체에 저장합니다.
  3. 결과가 없는 경우: rs.EOF 프로퍼티를 확인하여 데이터가 없는 경우를 처리합니다. EOF는 레코드셋의 끝을 의미하며, 레코드셋이 비어 있을 때 True가 됩니다.
  4. 데이터가 있는 경우: Do Until rs.EOF 루프를 사용하여 레코드셋을 순회하면서 데이터를 처리합니다.
  5. 리소스 해제: 작업이 끝난 후에는 레코드셋과 데이터베이스 연결을 닫고, 객체를 Nothing으로 설정하여 리소스를 해제합니다.

2. 개선된 방법: 예외 처리 및 메시지 출력

예외 처리와 에러 메시지 출력도 추가하여 코드의 견고성을 높일 수 있습니다.

<%
On Error Resume Next ' 에러 처리 시작

Dim conn, rs, sql
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "Provider=SQLOLEDB;Data Source=your_server;Initial Catalog=your_database;User ID=your_username;Password=your_password;"

sql = "SELECT * FROM your_table WHERE some_condition"
Set rs = conn.Execute(sql)

If Err.Number <> 0 Then
    Response.Write "쿼리 실행 중 오류가 발생했습니다: " & Err.Description
Else
    If rs.EOF Then
        Response.Write "데이터가 없습니다."
    Else
        Do Until rs.EOF
            Response.Write rs("your_column_name") & "<br>"
            rs.MoveNext
        Loop
    End If
End If

' 리소스 해제
If Not rs Is Nothing Then
    rs.Close
    Set rs = Nothing
End If
If Not conn Is Nothing Then
    conn.Close
    Set conn = Nothing
End If

On Error GoTo 0 ' 에러 처리 종료
%>

 

설명:

  • 예외 처리: On Error Resume Next를 사용하여 에러 발생 시 적절한 오류 메시지를 출력합니다.
  • 에러 확인: Err.Number를 확인하여 에러가 발생했는지 체크합니다.
  • 리소스 해제: If Not rs Is Nothing 및 If Not conn Is Nothing을 사용하여 객체가 Nothing이 아닐 경우만 리소스를 해제합니다.

이 코드는 ASP와 MSSQL을 사용하여 데이터베이스 쿼리 결과를 처리하고, 데이터가 없을 때 적절한 메시지를 사용자에게 출력하는 방법을 제공합니다.

반응형

댓글