Запрос к базе SQL через ADODB. Нехватает памяти

1. r24al 12 21.02.19 09:36 Сейчас в теме
Доброго дня, коллеги.

Прошу подсказать по коду. Похожий код работал на другой базе, переделал на новую базу и сразу падает, что памяти нехватает... Хотя на сервере еще 6 Гб свободной оперативки. В логах тишина... Таблица в SQL содержит 20 строк...

	SQL = Новый COMОбъект("ADODB.Connection");
	ServerName = "TEST1C\TEST1C"; //имя или IP-адрес сервера
	DSN = "Central"; //имя базы данных
	UID = "sa"; //логин пользователя SQL-сервера
	PWD = "as"; //пароль пользователя SQL-сервера
	ConnectString = "Provider=SQLOLEDB;" + "Data Source=" +ServerName + "; Initial Catalog=" + DSN + ";	User ID=" + UID + ";Password=" + PWD;
	SQL.ConnectionString = ConnectString;
	SQL.ConnectionTimeOut = 15;
	SQL.CommandTimeout = 30;
	//Подключаемся к базе данных
	Попытка
		SQL.Open();	
        Сообщить("MS SQL база подключена!!!");
    Исключение
        Сообщить("Не могу подключиться к базе!!!");
    КонецПопытки;

	Попытка
		Стр = "SEL ECT [stgr_ID] ,[stgr_Name]  FR OM [Central].[dbo].[StoreG]";

		Rec = SQL.Execute(Стр);
		Сообщить("Запрос выполнен");
	Исключение
		Сообщить("Невозможно выполнить запрос");
	КонецПопытки;
	
	i = 0;
	Пока Rec.EOF <> 1 Цикл
		Сообщить("i="+i+" : "+Строка(Rec.Fields(1).Value));
		Стр = Объект.ГруппаСкладовФирма.Добавить();
		Стр.ГруппаСкладов = Строка(Rec.Fields(1).Value);

		Rec.MoveNext(); //к следующей записи		
	КонецЦикла;
Показать
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. Dmitrij-2 45 21.02.19 10:44 Сейчас в теме
6. r24al 12 21.02.19 14:36 Сейчас в теме
(3) Сервер 1С 64х. Но ошибка и при подключении из файловой базы такая же.
4. shilanser 21.02.19 10:47 Сейчас в теме
(1) Доброго утра/дня! Первое, что бы я посмотрел - настройку источников данных ADO в ОС, на котором выполняется код - то есть, если база 1С файловая, то на машине, где открыта программа и выполняется код, если база 1С серверная - если код на клиенте, то на ПК, где выполняется код, если код на сервере, то на ПК, где стоит сервер 1С.
11. user928779 21.02.19 14:54 Сейчас в теме
(1) А на следущую строку рекордсета переходить Александр Сергеевич будет?
YannikAlx; kuzev; +2 Ответить
13. r24al 12 21.02.19 19:23 Сейчас в теме
(11) Это в коде было. При копировании и убирании лишнего стер.
Восстановил.
2. YannikAlx 43 21.02.19 09:43 Сейчас в теме
Памяти в какой момент не хватает? При выполнении запроса или при записи в 1С ?
7. r24al 12 21.02.19 14:38 Сейчас в теме
(2) Судя по всему на моменте запроса.
Оперативной памяти на компьютере 8 Гб. На сервере 8, но почти 7 из них свободны.
Уже и на файловой базе пробовал и на серверной...
Может я запрос не так пишу... Но раньше подобные работали... А тут новую базу сделали и под нее поля переименовал...
5. Bene_Valete 188 21.02.19 11:49 Сейчас в теме
А если в запросе ограничить выбор строк, например выбрать первые 2, то нормально выполняется?
8. r24al 12 21.02.19 14:39 Сейчас в теме
(5) Пробовал ограничить 10-ю... Ошибка та же.
Попробую выбрать 2...
9. acanta 21.02.19 14:41 Сейчас в теме
В SQL студио этот запрос выполняется?
10. r24al 12 21.02.19 14:53 Сейчас в теме
12. r24al 12 21.02.19 18:55 Сейчас в теме
Коллеги, вопрос закрываю.
Причину не понял. Перелазил все настройки, проверил все... на очередном перезапуске сервера все заработало и запросы пошли работать без сжирания ресурсов.

P.S. Исправил код в указанном примере. Когда убирал лишние строчки обработки убрал то, что нужно было - получение следующей строки в цикле... Это я на случай, если кому-то пригодится код...
14. JetBrain 78 24.02.19 07:01 Сейчас в теме
(12) не складывайте пожалуйста, тип строки с числами "Сообщить("i="+i+" ...", вы можете банально не увидеть результат в сообщении :)
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот