Skip to content

스크립트 개발 / 커넥터 객체 DFF.CONN / Microsoft SQL Server

Microsoft SQL Server 커넥터 작업 객체는 주로 Microsoft SQL Server의 작업 메서드를 제공합니다.

DFF.CONN(...) 매개변수는 다음과 같습니다.

매개변수 유형 필수 / 기본값 설명
connector_id str 필수 커넥터 ID
database str None 데이터베이스 지정

.query(...)

SQL 문을 실행하고 list[dict] 형식의 쿼리 결과를 반환합니다. 매개변수는 다음과 같습니다.

매개변수 유형 필수 / 기본값 설명
sql str 필수 SQL 문으로, 매개변수 자리 표시자를 포함할 수 있습니다.
?는 이스케이프가 필요한 매개변수를 나타내고,
??는 이스케이프가 필요 없는 매개변수를 나타냅니다.
sql_params list None SQL 매개변수
예시
1
2
3
sql = 'SELECT * FROM ?? WHERE seq > ?'
sql_params = ['demo', 1]
result = db.query(sql, sql_params=sql_params)

.non_query(...)

쓰기, 업데이트 또는 삭제 등의 SQL 문을 실행합니다. 매개변수는 .query(...)와 동일합니다.

예시
1
2
3
sql = 'DELETE FROM ?? WHERE id = ?'
sql_params = ['demo', 1]
result = db.non_query(sql, sql_params=sql_params)

현재 구현은 pymssql.Cursor.execute(...)의 반환값을 직접 반환하며, 일반적으로 None이므로 이를 사용하여 영향받은 행 수를 얻을 수 없습니다.

.query(...).non_query(...)는 실행 성공 시 자동으로 트랜잭션을 커밋하며, 실행 실패 시 자동으로 롤백하고 예외를 발생시킵니다.

트랜잭션

동일한 트랜잭션에서 여러 SQL을 실행해야 하는 경우 다음 메서드를 사용합니다.

메서드 설명
.start_trans() 트랜잭션을 시작하고 트랜잭션 연결 객체를 반환
.trans_query(trans_conn, sql, sql_params=None) 트랜잭션에서 쿼리를 실행하고 list[dict]를 반환
.trans_non_query(trans_conn, sql, sql_params=None) 트랜잭션에서 비쿼리 SQL을 실행하며, 일반적으로 None을 반환
.commit(trans_conn) 트랜잭션을 커밋하고 트랜잭션 연결을 닫습니다
.rollback(trans_conn) 트랜잭션을 롤백하고 트랜잭션 연결을 닫습니다

트랜잭션 실행 중 예외가 발생하면 .rollback(trans_conn)을 호출해야 합니다. 동일한 트랜잭션 연결 객체는 커밋 또는 롤백을 완료한 후에는 계속 사용할 수 없습니다.

동적 SQL 문

query(...)non_query(...)는 내부적으로 DFF.SQL(...)을 사용하여 SQL 문을 구성하며, 복잡한 동적 SQL 문을 구성할 수 있도록 지원합니다.

예를 들어 WHERE IN (...)의 값 개수가 확정되지 않은 경우, 또는 INSERT INTO ... VALUES ...를 사용한 일괄 데이터 쓰기 등이 있습니다.

자세한 내용은 스크립트 개발 / SQL 구성 DFF.SQL을(를) 참조하세요.