Подключение к базе H2.DB через ODBC
H2 — открытая кроссплатформенная СУБД полностью написанная на языке Java.
Особенности
H2 | Derby | HSQLDB | MySQL | PostgreSQL | |
---|---|---|---|---|---|
Pure Java | Да | Да | Да | Нет | Нет |
Режим памяти | Да | Да | Да | Нет | Нет |
Зашифрованной базе данных | Да | Да | Да | Нет | Нет |
ODBC Driver | Да | Нет | Нет | Да | Да |
Полнотекстовый поиск | Да | Нет | Нет | Да | Да |
Параллелизм нескольких версий | Да | Нет | Да | Да | Да |
Footprint (JAR / DLL размер) | ~ 1 MB | ~ 2 Мб | ~ 1 MB | ~ 4 Мб | ~ 6 MB |
См. также подробное сравнение .
Базы данных Java SQL. Основные особенности H2 являются:
Очень быстро, с открытым исходным кодом, JDBC API
Встроенный сервер и режимов; баз данных в памяти
Браузер приложение консоли
Малые размеры: около 1 MB банку размер файла
http://ru.wikipedia.org/wiki/H2
http://www.h2database.com
1) Устанавливаем программу
2) создаем базу Н2DB через H2 console
3) Устанавливаем драйвер
Подключение через PostgreSQL ODBC драйвер
http://www.postgresql.org/ftp/odbc/versions/msi/
4) Подключение к базе из 1С
H2DB = СоздатьОбъект("ADODB.Connection");
H2DB =Новый COMОбъект("ADODB.Connection");
СтрокаСоединения = "DSN=PostgreSQL35W;DATABASE=C:/tmp/PROBA;SERVER=127.0.0.1;PORT=5435;UID=sa;PWD=123;";
H2DB.ConnectionString = СтрокаСоединения;
H2DB.Open();
5) Работа с базой
Стр_Запроса = "INSERT INTO TEST VALUES(3, 'Test');";
H2DB.Execute(Стр_Запроса);
Примечание:
PORT=5435 в отличии от стандартного 5432
для стандартного подключения:
логин - sa (по умолчанию)
пароль - sa (по умолчанию))//пароль обязателен
Для преобразования даты в формат "ГГГГ-ММ-ДД";
http://www.1cpp.ru/forum/YaBB.pl?num=1149682923
Перем ФорматДаты_ДБ;
Функция лДатаФормат( нДата, нФормат)
ЗначВозврата = ""+нФормат;
Если ПустоеЗначение(нДата) = 1 Тогда
Возврат ЗначВозврата;
КонецЕсли;
тМесяцСтр = Формат(нДата,"Д ММММГГГГ");
поз = Найти(тМесяцСтр," ");
тМесяцСтр = СокрЛ(Лев(тМесяцСтр,поз));
СписЗамен = СоздатьОбъект("СписокЗначений");
СписЗамен.ДобавитьЗначение("ГГГГ" ,""+ДатаГод(нДата));
СписЗамен.ДобавитьЗначение("ГГ" ,Прав(""+ДатаГод(нДата),2));
СписЗамен.ДобавитьЗначение("ММММ" ,тМесяцСтр);
СписЗамен.ДобавитьЗначение("ММ" ,Формат(ДатаМесяц(нДата),"Ч(0)2"));
СписЗамен.ДобавитьЗначение("мМ" ,""+ДатаМесяц(нДата));
СписЗамен.ДобавитьЗначение("ДД" ,Формат(ДатаЧисло(нДата),"Ч(0)2"));
СписЗамен.ДобавитьЗначение("ДД" ,""+ДатаЧисло(нДата));
СписЗамен.ДобавитьЗначение("НН" ,Формат(НомерНеделиГода(нДата),"Ч(0)2"));
СписЗамен.ДобавитьЗначение("нН" ,""+НомерНеделиГода(нДата));
СЦ = 0;
Для СЦ = 1 По СписЗамен.РазмерСписка() Цикл
тПатернЗамн = "";
тПатернЗнач = СписЗамен.ПолучитьЗначение(СЦ,тПатернЗамн);
ЗначВозврата = СтрЗаменить(ЗначВозврата,тПатернЗнач,тПатернЗамн);
КонецЦикла;
Возврат ЗначВозврата;
КонецФункции // лДатаФормат()
ФорматДаты_ДБ = "ГГГГ-ММ-ДД";