0
KuJIT
11.12.15
✎
13:39
|
Собственно, подключаюсь к БД (копипасты с форумов)
Connection = Новый COMОбъект("ADODB.CONNECTION");
Connection.Provider = "MSDASQL.1";
Connection.ConnectionString = "Driver={PostgreSQL Unicode};data source=PostgreSQL35W;Server="+Хост+";Port=" +
Порт+";Database="+ИмяБД+";Uid="+ИмяПользователя+";Pwd="+Пароль+";STMT="+"utf8";
Попытка
Сообщить("Подключение к базе PostgreSQL...");
Connection.open();
Сообщить("База PostgreSQL подключена");
Исключение
Сообщить(ОписаниеОшибки());
// Сообщить("Не могу подключиться к базе PostgreSQL ");
Возврат;
КонецПопытки;
Однако есть проблема: нужно подключиться не к схеме "public", подключение к которой идет по умолчанию, а к схеме "test". Как это можно сделать?
|
|
1
KuJIT
11.12.15
✎
13:40
|
&НаКлиенте
Функция ПолучитьТЗ(ИмяТаблицы, Connection)
//ВременнаяТаблица = Новый ТаблицаЗначений;
МассивРезультат = Новый Массив;
НаборЗаписей = Новый ComObject("ADODB.RecordSet");
Команда = Новый COMОбъект("ADODB.Command");
Попытка
Команда.ActiveConnection = Connection;
Команда.CommandText = ПолучитьТекстЗапроса(ИмяТаблицы);
НаборЗаписей = Команда.Execute();
Сообщить("Данные получены.");
Исключение
// Сообщить("Нет данных.");
Сообщить(ОписаниеОшибки());
Возврат -1;
КонецПопытки;
////Добавление колонок во временную таблицу
//Для НомерСтолбца = 0 По НаборЗаписей.Fields.Count - 1 Цикл
// ИмяСтолбца = НаборЗаписей.Fields.Item(НомерСтолбца).Name;
// ВременнаяТаблица.Колонки.Добавить(ИмяСтолбца);
//КонецЦикла;
Пока НЕ НаборЗаписей.EOF Цикл
// Заполнение временной таблицы таблицы
ПсевдоСТрока = Новый Структура;
//НоваяСтрока = ВременнаяТаблица.Добавить();
Для НомерСтолбца = 0 По НаборЗаписей.Fields.Count-1 Цикл
//НоваяСтрока.Установить(НомерСтолбца, СокрЛП(НаборЗаписей.Fields(НомерСтолбца).Value));
ПсевдоСТрока.Вставить(СокрЛП(НаборЗаписей.Fields(НомерСтолбца).Name), СокрЛП(НаборЗаписей.Fields(НомерСтолбца).Value));
КонецЦикла;
МассивРезультат.Добавить(ПсевдоСТрока);
НаборЗаписей.MoveNext();
КонецЦикла;
Возврат МассивРезультат;
КонецФункции
Так получаю результат запроса
|
|