Имя: Пароль:
1C
 
Выполнение процедуры, хранимой на sql сервере
,
0 kathleen
 
06.06.16
15:19
Помогите пожалуйста. Нужно в 1с прописать выполнение процедуры хранимой на sql сервере. В процедуру нужно передать много параметров. Нашла код:
DataBaseConnection = Новый COMObject("ADODB.Connection");
DataBaseConnection.ConnectionString = "Driver={SQL Server}; Password='111'; User ID = 'sa'; Data Source = MSDASQL.1; SERVER=server";
DataBaseConnection.Open();
    
Command = Новый COMОбъект("ADODB.Command");
Command.ActiveConnection = DataBaseConnection;

par = Command.CreateParameter("@param1",3,1,4,0);
Command.parameters.append(par);

Command.CommandText = "InsertData";
Command.Parameters(0).Value=777;

sp = Command.Execute();
Не понятно как передаются параметры для процедуры, а именно что значат  записи par = Command.CreateParameter("@param1",3,1,4,0);
Command.parameters.append(par);
Разъясните кто-нибудь
1 В тылу врага
 
06.06.16
15:24
2 kathleen
 
06.06.16
15:32
(1)А в direction  что ставить,1?
3 sitex
 
naïve
06.06.16
15:55
(2) 1 идет по умолчению, значит можно ничего не ставить.
4 kathleen
 
06.06.16
15:55
спасибо
5 kathleen
 
07.06.16
10:56
В описании процедуры указаны типы параметров, например bit, nvarchar. В описании возможных значений type я их не нахожу, как их сопоставить, что указывать в этом поле, когда буду передавать значение параметра?
6 ovrfox
 
07.06.16
12:27
Посмотри описание (1)
https://msdn.microsoft.com/ru-
ru/library/ms675318(v=vs.85).aspx
https://msdn.microsoft.com/ru-ru/library/ms678273(v=vs.85).aspx
7 В тылу врага
 
07.06.16
12:32
8 kathleen
 
07.06.16
13:38
(7)я его видела, и какую цифру нужно поставить в поле type, если мне нужно передать параметр типа bit?
9 organizm
 
07.06.16
13:53
почему бит, может булево подойдет?
10 kathleen
 
07.06.16
14:11
(9)дело в том, что мне дали процедуру и описание передаваемых параметров. В описании указаны такие типы как bit, nvarchar и т.д. И я не знаю какие цифры указывать для этих типов в CreateParameter. Можно ли например вместо bit, которого нет в
http://www.w3schools.com/asp/ado_datatypes.asp указывать другие и как их сопоставить?
11 Shrek_yar
 
07.06.16
14:13
12 kathleen
 
07.06.16
14:17
(11)я спрашиваю про параметр type, а не value
13 Shrek_yar
 
07.06.16
14:27
(12) ствавь int , передавай число 0 или 1
14 Shrek_yar
 
07.06.16
14:28
или adSmallInt  
2
Indicates a two-byte signed integer (DBTYPE_I2).
15 Shrek_yar
 
07.06.16
14:31
16 kathleen
 
07.06.16
16:27
Спасибо, то что надо
17 В тылу врага
 
07.06.16
16:58
(8) там написано adBoolean
18 kathleen
 
09.06.16
09:40
У меня еще вопрос. В процедуру нужно передать параметр типа TEXT, причем это будет текст xml. Я создаю записьxml, записываю ее в строку и передаю. Этот текст может быть очень большой. Какой тип лучше указать в CreateParameter в данном случае?
19 В тылу врага
 
09.06.16
09:44
adLongVarWChar    203
20 kathleen
 
09.06.16
09:46
(19)ага, он требует указать size, че туда написать?
21 kathleen
 
09.06.16
09:50
(20)Поставила 1000000, скушал, надеюсь хватит
22 kathleen
 
09.06.16
12:11
Прописала все параметры при выполнении Command.Execute() ругается что нет первого параметра. Что я не так делаю, в Command.parameters.Count 64 штуки, в том числе и первый?