powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / [игнор отключен] [закрыт для гостей] / Подскажите как из запроса подключиться к другому slq серверу и базе
5 сообщений из 5, страница 1 из 1
Подскажите как из запроса подключиться к другому slq серверу и базе
    #39192955
YanMalyakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте !

Пишу код на 1С 77,задача состоит в следующем, взять данные из базы которая находиться на другом Sql сервере.
пытаюсь подключиться по ADODB.Connection но программа ругается что превышен интервал ожидания и вываливается в ошибку
пытался увеличить Connection.ConnectionTimeOut с 60 до 6000; и Command.CommandTimeout 30 до 3000;
Ошибка не появляется но и программа не отвечает мин. по 30
на выполнение Sql запроса в Manag. Studio уходит не больше секунды

Кроме того пытался
использовать addlinkedserver но sql все равно не видит другой сервак
Подозреваю что существует более простой способ коннекта к другому серваку,подскажите плиз.

Код: sql
1.
2.
3.
4.
5.
 EXEC sp_addlinkedserver   
   @server=N'1С', 
   @srvproduct=N'',
   @provider=N'SQLNCLI', 
   @datasrc=N'1С';



Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
Server         = СокрЛп(СерверИзКонстанты)  ;        
	DataBase       = СокрЛп(БазаДанныхИзКонстанты);
	Login          =  "sa";      //Логин 
	Password       =  "524919";  //Пароль  
	
	
	Connection = CreateObject("ADODB.Connection"); 
	//
	ConnectionString = "driver={SQL Server};"+"server="+СокрЛП(Server)+";"+"uid="+СокрЛП(Login)+"; "+"pwd="+СокрЛП(Password)+";"+"Database="+СокрЛП(Database);
	//	ConnectionString = "DRIVER={SQL Server Native Client 10.0};"+"server="+СокрЛП(Server)+";"+"uid="+СокрЛП(Login)+"; "+"pwd="+СокрЛП(Password)+";"+"Database="+СокрЛП(Database);
	// ConnectionString = "Provider=SQLOLEDB.1;"+"server="+СокрЛП(Server)+";"+"uid="+СокрЛП(Login)+"; "+"pwd="+СокрЛП(Password)+";"+"Database="+СокрЛП(Database);
	
	Command    = CreateObject("ADODB.Command");
	Command.CommandTimeout = 300;
	
	
	Connection.ConnectionTimeOut = 600;                                                   
	//

	//
	Connection.Open(ConnectionString);
	

	
	////-----Создаем Запрос + набор  записей по Возвратным  накладным
	
	НаборЗаписДокументы = CreateObject("ADODB.RecordSet");
	НаборЗаписДокументы.ActiveConnection = Connection; 
	
	strQuery = "Select KLIENT,TOVAR,MARSHRUT       ---- Этот Select нужен для того что бы преобразовать тип Число в тип Строка 
|,CAST(KOL     AS CHAR(15)) As KOL
|,CAST(OSTATOK AS CHAR(15)) As OSTATOK 
|,CAST(PREDZAK AS CHAR(15)) As PREDZAK
|,CAST(Remis AS CHAR(15))   As Remis   
| From
|(SELECT  TOP(10) TABLE1.TOVAR,TABLE1.KLIENT,TABLE1.MARSHRUT,TABLE1.CODE_TOVAR,TABLE1.SKLAD,SUM(TABLE1.OSTATOK)AS OSTATOK
|,SUM(TABLE1.PREDZAK)AS PREDZAK,SUM(TABLE1.Remis)AS Remis,SUM(TABLE1.KOL) AS KOL 
|FROM		
|(Select  --Уровень1
|-- Это подзапрос возвращает 1(один столбец) 
|(Select TablSclad.DESCR   From SC1001 AS TablSclad
|WHERE  TablSclad.ID = RG1080.SP1084) AS SKLAD,
|-- Это подзапрос возвращает 1(один столбец) 
|(Select TablKlient.DESCR   From SC1005 AS TablKlient
|WHERE  TablKlient.ID = RG1080.SP1082
|AND TablKlient.ISFOLDER = 2 ) AS KLIENT,
|-- Это подзапрос возвращает 1(один столбец)  
|(Select TablTovar.DESCR   From SC1031 AS TablTovar
|WHERE  TablTovar.ID = RG1080.SP1083
|AND  TablTovar.ISMARK   = 0
|AND  TablTovar.ISFOLDER = 2
|) AS TOVAR ,
|-- Это подзапрос возвращает 1(один столбец) 
|(Select TablKlient.SP1663   From SC1005 AS TablKlient
|WHERE  TablKlient.ID = RG1080.SP1082
|AND TablKlient.ISFOLDER = 2 ) AS MARSHRUT,
|-- Это подзапрос возвращает 1(один столбец) 
|(Select TablTovar.CODE   From SC1031 AS TablTovar
|WHERE  TablTovar.ID = RG1080.SP1083) AS CODE_TOVAR,
|RG1080.SP1081 AS OSTATOK,
|SP1313 AS PREDZAK,
|SP1314 AS Remis ,  
|SP1081 As KOL    
|--CAST(SP1081 AS CHAR(15)) As KOL                           ---Преобразование типа Числа в Тип Строка 
|FROM dbo.RG1080 ) AS TABLE1   --Уровень1 Окончание
|WHERE TABLE1.KLIENT = 'М-999 МАРКЕТ'
|AND    TABLE1.TOVAR  = 'Всё для мужчины №12(498)(16+)' --IS NOT NULL 
|GROUP BY TOVAR,KLIENT,SKLAD,MARSHRUT,CODE_TOVAR) AS TABLE2
|ORDER BY KLIENT,TOVAR,MARSHRUT";                                
	
НаборЗаписДокументы.Open(strQuery); 



Модератор: Тема перенесена из форума "Microsoft SQL Server".
...
Рейтинг: 0 / 0
Подскажите как из запроса подключиться к другому slq серверу и базе
    #39192977
Последний выдох ГПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
выполни в 1с, поймай в профайлере на скуле. посмотри есть ли разница
...
Рейтинг: 0 / 0
Подскажите как из запроса подключиться к другому slq серверу и базе
    #39192983
YanMalyakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Последний выдох ГПЖ,

На самом деле всё зависает на выполнении кода
Код: sql
1.
НаборЗаписДокументы.Open(strQuery);  
...
Рейтинг: 0 / 0
Подскажите как из запроса подключиться к другому slq серверу и базе
    #39193004
Последний выдох ГПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
курить CursorLocation
...
Рейтинг: 0 / 0
Подскажите как из запроса подключиться к другому slq серверу и базе
    #39193155
Фотография MicMic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
давно это было ....

Для запросов к другому серверу попробуйте покурить OPENROWSET:
https://msdn.microsoft.com/ru-ru/library/ms190312(v=sql.105).aspx

Вместо ADODB попробуйте SQLDMO.
В свое время от ADODB в пользу последнего отказался изза постоянных вопросов в первую очередь с таймаутами.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / Подскажите как из запроса подключиться к другому slq серверу и базе
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]