|
Подключение к pgsql через СОМ. смена схемы по умолчанию. | ☑ | ||
---|---|---|---|---|
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(); КонецЦикла; Возврат МассивРезультат; КонецФункции Так получаю результат запроса |
|||
2
KuJIT
11.12.15
✎
13:49
|
(0) Ну, в общем, решилась проблема. Всего лишь нужно было в тексте запроса указать имя схемы перед именем таблицы.
ТекстЗапроса = "SELECT * FROM " + "test." + ИмяТаблицы; Вместо ТекстЗапроса = "SELECT * FROM " + ИмяТаблицы; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |