Имя: Пароль:
1C
1С v8
Подключение к базе через ADO
0 Irken_1
 
28.03.12
13:35
Добрый день!
Нашла как подключиться в интернете, но не хочет подключаться и все тут :-((
код такой:
ADOConnection = Новый COMОбъект( "ADODB.Connection" );  
ConnectionString = "Provider=SQLOLEDB;User ID=QWE;Password=asdqwe;Data Source=HWSSQL3\\SQL2008;Initial Catalog=qwe_asd";
ADOConnection.ConnectionString = ConnectionString;

  Попытка
      ADOConnection.Open();
  Исключение

      Сообщить( "Неудачная попытка подключения к серверу" );
      Сообщить(ОписаниеОшибки());
  КонецПопытки;
а ошибку выдает:
{Обработка.ПередачаИзмененийBTS.Форма.Форма.Форма(90)}: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft OLE DB Provider for SQL Server): [DBNETLIB][ConnectionOpen (Connect()).]SQL Server не существует, или доступ запрещен.

что не так делаю?
1 ДенисЧ
 
28.03.12
13:37
Data Source=HWSSQL3\SQL2008
2 Irken_1
 
28.03.12
13:57
пасиб большое! ура! подключилась :-)))))
3 Irken_1
 
28.03.12
16:37
еще вопросик.
код такой:
   ADOConnection = Новый COMОбъект( "ADODB.Connection" );
   ConnectionString = "Provider=SQLOLEDB;User ID=qwe;Password=asd;Data Source=HWSSQL3\SQL2008;Initial Catalog=qweasd";
   ADOConnection.ConnectionString = ConnectionString;  
   Попытка
       ADOConnection.Open();
   Исключение
       Сообщить( "Неудачная попытка подключения к серверу" );
       Сообщить(ОписаниеОшибки());
   КонецПопытки;
   //
   Command = Новый COMObject("ADODB.Command");
   
   Command.ActiveConnection = ADOConnection;
   Command.CommandText = "PR_Print_SummaryStatement";
   
   Command.CommandType = 4;
   ParamOrg = Command.CreateParameter("@OrganizationID", 72, 1, 0, "73167096-974F-495E-9CED-6885E07408AB");
   Command.Parameters.Append(ParamOrg);
   //

   Param3 = Command.CreateParameter("@DateStart", 7, 1, 4, "01.01.2012");
   Command.Parameters.Append(Param3);
   Param2 = Command.CreateParameter("@DateEnd", 7, 1, 4, "20.03.2012");
   Command.Parameters.Append(Param2);
   
   //
   RecordSet = Новый COMОбъект("ADODB.RecordSet");
   RecordSet = Command.Execute();

выдает ошибку во какую:
{Обработка.ПередачаИзмененийBTS.Форма.Форма.Форма(100)}: Ошибка при вызове метода контекста (Execute)
   RecordSet = Command.Execute();
по причине:
Произошла исключительная ситуация (Microsoft OLE DB Provider for SQL Server): Недопустимое символьное значение для спецификации приведения.
4 КМ155
 
28.03.12
16:43
(3) без текста запроса ответа не возможен
5 vmv
 
28.03.12
16:44
(4) он в коде (3))

(3) Command.CreateParameter и пытается привести значение и последний параметр(возможно там где даты) ему не по нутру
6 vmv
 
28.03.12
16:49
вообще устройства нужно читать из АД и через ЛДАП или использовать софтину

http://www.glpi-project.org/wiki/doku.php?id=ru:welcome
7 Irken_1
 
29.03.12
16:52
А если в хранимой процедуре не передавать параметры это возможно?
в ней есть значения параметров по умолчанию.
Или 1с это не понимает и необходимо передавать все параметры обязательно?
8 Irken_1
 
30.03.12
10:28
вызов процедуры решился следующим образом:
замена:
Command.CommandType = 4;
на
Command.CommandType = 8;
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.