이 위시리스트 요청에 영감을 준 것은 무엇입니까?
나중에 디버깅 목적으로 사용할 수 있는 추가 기능의 로그 및 디버그 메시지를 로컬 데이터베이스에 저장하려고 하며 JMP에 내부 SQLite 지원이 있다는 것을 확인했습니다. 즉, ODBC 드라이버를 설치할 필요가 없습니다.
현재 JMP 16, 17 및 18 EA2에서 SQLite에 대한 내부 지원은 읽기(=SELECT) 작업에만 해당되며 내부 SQLIte 작업에는 8년이 넘은 버전 3.8.11.1이 있습니다. 두 가지 제한 사항 중 어느 것도 JMP 문서에 문서화되어 있지 않으며 다른 곳에서도 찾을 수 없습니다.
예를 들어 다음 명령은 JMP에서 SQLite 데이터베이스 파일을 엽니다.
obj = New SQL Query(
Connection("SQLite:Database=<PATH>\data.db"), 사용자 정의 SQL("SELECT sqlite_version(), sqlite_source_id() FROM table1") ) << Run Foreground();</PATH>
그런데 이 명령은 내부적으로 사용되는 JMP 16/17/18EA2의 SQLite 구현 버전을 반환합니다.
| sqlite_버전 | sqlite_source_id |
| 3.8.11.1 | 2015-07-29 20:00:57 cf538e2783e468bbc25e7cb2a9ee64d3e0e80b2f |
그러나 다음 INSERT 또는 UPDATE 명령을 실행하면 "deleted object reference[]"라는 오류가 발생합니다.
obj = New SQL Query(
Connection("SQLite:Database=<PATH>\data.db"), 사용자 정의 SQL("INSERT INTO table1 (id, name, data) VALUES (1, \!"test\!", sqlite_version());") ) << Run Foreground();</PATH>
당신이 보고 싶은 개선점은 무엇입니까?
- JMP 추가 기능을 실행하는 동안 수집된 데이터를 저장하기 위해 SQLite 구현이 UPDATE 및 INSERT 문을 실행할 수 있도록 허용합니다.
- 최신 버전의 드라이버를 사용할 수 있도록 내부 SQLite 드라이버를 업데이트합니다. 현재 버전은 3.42.0입니다.
이 아이디어가 왜 중요한가요?
이 아이디어를 통해 디버깅 또는 로깅 목적으로 작은 데이터를 SQLite 데이터베이스 파일에 저장할 수 있습니다. 이 형식은 일반 텍스트, JSON 또는 XML 파일을 사용하는 것보다 더 좋고, 더 유연하며, 더 유용합니다.
@martindemel