Здравствуйте.
Ищу библиотеку на С++, которая стандартизует генерацию SQL запросов и работу с разными БД: MySQL, SQLite, MS SQL.
Есть ли готовое решение, чтобы не писать свой велосипед?
Ищу, что-нибудь простое и легковесное. Или как вариант - популярное в сообществе.
Подробнее о проблеме:
Периодически приходиться писать программы, которые работают с разными БД.
Программы в общем простые:
- проверить наличие таблицы и создать таблицу,
- проверить наличие поля в таблице, проверить тип поля и отредактировать поля таблицы
- произвести SELECT, INSERT и UPDATE и прочесть результат, либо обработать ошибку.
Но как говориться, дьявол кроется в деталях. Например, автоинкремент может писаться по-разному.
Для MySQL используется 'AUTO_INCREMENT':
CREATE TABLE MyTable (
id INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY(id)
);
Для MS SQL используется 'IDENTITY':
CREATE TABLE MyTable
(
id INTEGER PRIMARY KEY IDENTITY(1,1)
);
Для SQLite используется 'AUTOINCREMENT ':
CREATE TABLE `MyTable` (
`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL);
Другой пример: отправить INSERT-запрос, в котором в одно из полей надо вставить время в секундах от 1970 года.
MySQL: UNIX_TIMESTAMP()
SQLite: strftime('%s', 'now', 'localtime')
MS SQL: dbo.UNIX_TIMESTAMP(GETDATE())
О себе:
Windows, MS VS 2008, MySQL 5.6, MS SQL 2008, SQLite 3