Что такое лучшая библиотека SQL для использования в Common Lisp?


16

Идеально что-то, что будет работать с Oracle, MS SQL Server, MySQL и Posgress.

11

если вы имеете в виду общий lisp по lisp, то есть cl-rdbms. он сильно тестируется на postgres (использует postmodern в качестве backend lib), у него есть база данных sqlite для игрушек, а также на базе OCA на основе оракула. он поддерживает абстрагирование от разных диалектов sql, имеет расширение синтаксиса квазикоманды sql, устанавливаемое на, например, персонажи.

Я не уверен, что это самое лучшее, и я в любом случае предвзято ... :), но мы закончили тем, что запустили нашу собственную библиотеку после использования clsql на некоторое время, что я считаю наиболее широко используемым sql lib для cl.

см. cliki page about sql для дополнительной справки.


7

В настоящее время нет библиотеки с открытым исходным кодом, которая поддерживает все упомянутые вами SQL-серверы. CLSQL подходит довольно близко (отсутствует поддержка только MS SQL). Альтернативы:

  • CL-RDBMS (который поддерживает Oracle, Postgres через постмодерна и sqlite3)
  • Postmodern (только Postgres).

Если вы можете использовать коммерческий Lisp, вы можете попробовать CommonSQL, входящий в комплект Lispworks, который поддерживает все указанные вами базы данных.

CLSQL выглядит как самая популярная библиотека с открытым исходным кодом на данный момент. К сожалению, он, похоже, страдает от бит-гниения, и разработчикам пришлось сделать некоторые компромиссы для поддержки всех этих платформ.

Если база данных RDB не является ограничением, я рекомендую Postmodern. Он очень хорошо документирован и имеет чистый API (и хороший небольшой язык, скомпилированный для SQL). Кроме того, он хорошо поддерживается и достаточно мал, чтобы оставаться понятным и расширяемым. Он фокусируется только на Postgres, не пытаясь быть всем для всех людей.

  0

это неправильно. см. http://www.cliki.net/SQL 23 сен. 082008-09-23 19:54:12

  0

Я думаю, вы были правы. Но если CLSQL поддерживал MS SQL * I * был бы прав :-) Во всяком случае, я отредактировал свой ответ. 23 сен. 082008-09-23 20:14:06

  0

Разве MS SQL недоступен для ODBC? Предполагается, что CL-SQL поддерживает ODBC. 24 сен. 082008-09-24 12:24:03

  0

Они ничего не говорят о MS SQL в документации CLSQL. 24 сен. 082008-09-24 23:40:18

  0

CLSQL определенно общается с MSSQL над ODBC просто отлично (лучше, чем простой ODBC в моем ограниченном опыте) 04 июн. 152015-06-04 12:46:50


2

Allegro Common Lisp имеет библиотеку ODBC и библиотеку MySQL-specific, которые полностью документированы. Я использовал MySQL один; без сюрпризов.