매개변수화된 SQL 쿼리에 대한 메커니즘 제공ODBC 라이브러리는 일반적으로 쿼리와 매개변수를 별도로 데이터베이스에 전달하는 매개변수화된 쿼리를 만드는 기능을 제공합니다. 이는 기본적으로 SQL 주입 공격의 위험을 제거하지만 프로그래밍 관점에서도 매우 편리합니다. JMP에는 ODBC 쿼리가 있으므로 다음을 수행할 수 있도록 매개변수화된 쿼리도 있어야 합니다.
Execute SQL(database,
"Select * from Employees where Name like ? and Status=?",
"BobList",
{"Bob", "Active"}
);pyodbc의 매개변수화된 쿼리:
https://github.com/mkleehammer/pyodbc/wiki/Getting-started#parameters
.NET 생태계의 매개변수화된 쿼리:
https://docs.microsoft.com/en-us/dotnet/api/system.data.odbc.odbccommand.parameters?redirectedfrom=MSDN&view=dotnet-plat-ext-5.0#System_Data_Odbc_OdbcCommand_Parameters
자동화 및 스크립팅Re: 매개변수화된 SQL 쿼리에 대한 메커니즘 제공명명된 쿼리를 사용하여 이를 구현할 수 있다고 생각합니다.Create Named Query() 및 Execute Named Query().이러한 함수는 내부적으로 ODBC SQLPrepare(), SQLBindParameter() 및 SQLExecute() 함수를 사용합니다.Create Named Query() 함수는 SQL 문과 매개변수를 사용합니다.이 함수는 명명된 쿼리 객체를 반환합니다.Execute Named Query()는 데이터베이스 연결 객체, 명명된 쿼리 객체 및 매개변수 값을 입력으로 사용하고 SQL 결과를 데이터 테이블로 반환합니다(필요한 경우).데이터베이스 연결 객체는 execute 함수 대신 create 함수의 입력이 될 수 있습니다.이 접근 방식의 이점은 스크립트 초기화 시에 생성이 발생하여 실행 부분을 별도로 둘 수 있어 아마도 더 효율적일 것입니다.
Re: 매개변수화된 SQL 쿼리에 대한 메커니즘 제공저도 이와 비슷한 기능을 구현하고 싶습니다. 최소한 SQL 연결과 쿼리 인수를 별도로 전달하여 단위 테스트 함수를 더 쉽게 만들 수 있으면 좋겠습니다. 예를 들어, SQL 쿼리가 포함된 함수를 테스트할 때, 연결을 로컬 JMP 테이블로 쉽게 교체할 수 있습니다.