예전 글 ‘ASP.NET MVC, Delete Multiple Rows With Checkbox’에서 SQL의 ‘where’ 구문의 조건으로 ‘in’ list에 테이블 변수(타입)를 대입해서 한 번에 여러 Row를 처리하는 쿼리를 살펴보았다. 이때 선행조건으로 테이블 타입을 생성해야만 하는데 이번에는 IN list에 콤마로 구분된 스트링이 변수로 입력되었을 때도 동일한 기능을 수행하는 사용자 함수를 만들어 사용해보자. 참고로 SQL Server 2016 버전 이상은 ‘STRING_SPLIT’라는 함수를 이미 제공하고 있다.
-- 사용예 : 함수명(StringSplit)
@SomeStrings = 'abc, 가나다, 123'
delete from SomeTable where ID in (select value from StringSplit(@SomeStrings, ','))
2019년 5월 RAD Studio PM 팀은 Delphi, C++ Builder 그리고 Rad Studio 로드맵을 발표했다(Marco Cantu 2019). 로드맵에 대한 자세한 논평은 ‘May 2019 RAD Studio Roadmap Commentary from Product Management(Sarina DuPont 2019)’에서 볼 수 있다. 이번 포스팅에서는 델파이의 미래에 대하여 개인적인 생각을 정리했다. 델파이 버전 3부터 직접 사용했으니 오랫동안 동고동락한 개발 툴인 셈이다.
ASP.NET MVC 웹 화면의 그리드에서 체크박스로 나열된 여러 Row를 선택하고 한 번에 삭제하는 방법을 데이터베이스(SQL Server, Table-Valued Parameters) 부분부터 C# 코드의 부분까지 간단하지만, 실무에서 유용한 과정을 정리하였다. Micro-ORM으로 Dapper를 사용하였다.
--테이블 타입 생성
CREATE TYPE dbo.IDList AS TABLE (
ID varchar(11) COLLATE Korean_Wansung_CI_AS NULL
)
--스토어드 프로시저 생성 : 테이블명은 SomeTable로 가정
CREATE PROCEDURE [dbo].[SP_DeleteList]
@IDList IDList READONLY
AS
BEGIN
DELETE FROM SomeTable
WHERE ID IN (SELECT ID FROM @IDList)
END