Windows10/64 に CCL Lisp 1.11 をインストールし、sqlite3.dll をダウンロードしてから、quicklisp と cl-sql をインストールしました。(ドイツ語の) 特殊文字のコンテキストでエラーが発生します。これは私がEmacs Slime Replで試したことです:
(clsql:connect '("C:/users/user/test.sqlite")
:database-type :sqlite3
:encoding 'utf-8)
(clsql:execute-command "create table name (name)")
(clsql:execute-command "insert into name values ('Übermaß')")
(format t "~A" (clsql:query "select * from name") )
最後の行を実行すると、デバッガーが呼び出されます。
Cannot allocate a STRING with NIL elements.
Objects of type STRING can can have at most
16777215 elements in this implementation.
[Condition of type CCL::VECTOR-SIZE-LIMITATION] ...
Backtrace
0: (%STR-FROM-PTR #<A Foreign Pointer #x2D0F8C8> NIL NIL)
1: ((:INTERNAL CLSQL-SQLITE3::EXTRACT-ROW-DATA (CLSQL-SYS:DATABASE-QUERY (T CLSQL-SQLITE3:SQLITE3-DATABASE T T))))
2: (#<STANDARD-METHOD CLSQL-SYS:DATABASE-QUERY (T CLSQL-SQLITE3:SQLITE3-DATABASE T T)> "select * from name" #<SQLITE3-DATABASE C:/users/user/test.sqlite OPEN #xCDC1B7E> :AUTO T)
3: (CCL::%%STANDARD-COMBINED-METHOD-DCODE ((#<STANDARD-METHOD CLSQL-SYS:DATABASE-QUERY :BEFORE (T CLSQL-SYS:DATABASE T T)>) NIL ..) 16705134)
...
私の Emacs .init.el は UTF-8 を使用するように設定されています:
(set-language-environment "utf-8")
(setq inferior-lisp-program "C:/users/user/bin/ccl-1.11/wx86cl.exe -K utf-8")
(setq slime-net-coding-system 'utf-8-unix)
(prefer-coding-system 'utf-8)
(set-terminal-coding-system 'utf-8)
(setq default-buffer-file-coding-system 'utf-8)
UTF-8 エンコーディングなしで .sqlite DB ファイルを作成しようとすると、データの挿入と選択は機能しますが、特殊文字が正しく表示されません。