Как выгрузить всю таблицу БД SQL в поле текстового документа (по запросу пользователя)?

1. ovadia 17.11.17 19:22 Сейчас в теме
Подскажите, пожалуйста, как выгрузить по SQL запросу таблицу БД в поле текстового документа (обычная форма)? Запрос вводится пользователем в поле текстового документа. Имена полей таблицы не известны.

Пример кода (в данном случае известны имена полей таблицы - [id], [tst] и запрос прописывается в коде):
Процедура BT_SQLClick(Элемент)
	
	
	Попытка
        Соединение  = Новый COMОбъект("ADODB.Connection");
        Команда     = Новый COMОбъект("ADODB.Command");
        Выборка     = Новый COMОбъект("ADODB.RecordSet");
        Соединение.ConnectionString =
            "driver={SQL Server};" +
            "server="+ИмяСервераSQL+";"+
            "uid="+ПользовательSQL+";"+
            "pwd="+ПарольSQL+";"+
            "database="+БазаДанныхSQL+";";
        Соединение.ConnectionTimeout = 10;
        Соединение.CommandTimeout = 600;
        //Открытие соединение
        Соединение.Open();
        Команда.ActiveConnection   = Соединение;
    Исключение
        Сообщить(ОписаниеОшибки());
		ЭлементыФормы.STATUS_TEXT.ЦветТекста = Новый Цвет(250, 0, 0);
		ЭлементыФормы.STATUS_TEXT.Значение = "Ошибка запроса!";
        Возврат;
	КонецПопытки;
	
	 //Читаем записи
    ТекстЗапроса =
        "SEL ECT
        |   [id], [tst]
        |FROM "+ТаблицаSQL_TST;
	
	ТекстЗапроса_2 =
        "SEL ECT * FR OM "+ТаблицаSQL_Enum;
	
	//id = 4;
	//tst = "Я вот что тут подумал ...";
	//ТекстТекущейИнструкции =
	//    "SET IDENTITY_INSERT "+ТаблицаSQL+" ON;
	//	|INS ERT INTO "+ТаблицаSQL+"
	//    |([id], [tst])
	//    |VALUES ('"+id+"', '"+tst+"')";
	//Попытка
	//    Соединение.Execute(ТекстТекущейИнструкции,,128);
	//    Сообщить("Запись добавлена!");
	//Исключение
	//    Сообщить(ОписаниеОшибки());
	//КонецПопытки;
	
	Попытка
		Команда.CommandText = ТекстЗапроса;
		Выборка = Команда.Execute();
		Если Выборка.BOF = Ложь Тогда
		    Выборка.MoveFirst();
			Пока Выборка.EOF = Ложь Цикл
				s_res = "id= " + Число(Выборка.Fields("id").Value) + ", tst= " + СокрЛП(Выборка.Fields("tst").Val ue);
		        ЭлементыФормы.FLD_ResSQL.ДобавитьСтроку(s_res);
				Сообщить(s_res);
		        Выборка.MoveNext();
		    КонецЦикла;
		КонецЕсли;
		ЭлементыФормы.FLD_ResSQL.ДобавитьСтроку("Запрос выполнен!");
	Исключение
		ЭлементыФормы.FLD_ResSQL.ДобавитьСтроку("Ошибка запроса!");
	    Сообщить(ОписаниеОшибки());
	КонецПопытки;
	
	Соединение.Close();

КонецПроцедуры;
Показать


Мне нужно сделать вывод по любому запросу, который пользователь напечатает в поле, например:
SEL ECT * FROM ТSQL_Enum
По теме из базы знаний
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. Dnki 4 18.11.17 00:57 Сейчас в теме
* Однозначно, команда должна быть SELECT *
* При выводе результата, нужно обходить его колонки.
* Я не большой знаток ADO, но навскидку нашел, что у объекта RecordSet есть коллекция Fields.
И работа с ней на самом официальном сайте:My Webpage
3. МихаилМ 18.11.17 12:20 Сейчас в теме
на этом сайте полно консолей запросов . возможно есть и с мастерами построения запросов
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)