Имя: Пароль:
1C
1С v8
Ошибка при подключении к SQL
0 gash85
 
25.03.13
13:21
Св = Новый COMОбъект("ADODB.Connection");
Св.CursorLocation    = 3;
Св.ConnectionTimeout=15;
СтрокаСвязи        = "Provider=SQLOLEDB.1;Password=pas;Persist Security Info=True;User ID=user;Initial Catalog=basecard;Data Source=cards;Connect timeout=10";
Попытка
   Св.Open(СтрокаСвязи);
Исключение
   Св = "";
   Предупреждение("Ошибка подключения к SQL Server.");
КонецПопытки;

CommEdit = Новый COMОбъект("ADODB.Command");
CommEdit.ActiveConnection = Св;
CommEdit.CommandText = "cards_activate";
CommEdit.CommandType = 4;

НомерКарты = Прав(СокрЛП(Стр.НомерКарты), СтрДлина(СокрЛП(Стр.НомерКарты))-9);

нКом =  Новый COMОбъект("ADODB.Recordset");
Попытка
   нКом.Open("Execute cards.dbo.cards_activate @card='"+НомерКарты+"'", Св);
Исключение
   Сообщить("Произошла ошибка передачи данных!", СтатусСообщения.ОченьВажное);
   Сообщить(ОписаниеОшибки());
КонецПопытки;

Пока нКом.EOF() = 0 Цикл
   рез = нКом.Fields.item(0).Value;
   нКом.MoveNext();        
КонецЦикла;

{Обработка.АктивацияКартЕ100.Форма.Форма.Форма(69)}: Ошибка при вызове метода контекста (EOF)
               Пока нКом.EOF() = 0 Цикл
по причине:
Произошла исключительная ситуация (ADODB.Recordset): Операция не допускается, если объект закрыт.

Подскажите, плз, что неверно?
1 rs_trade
 
25.03.13
13:22
2 rs_trade
 
25.03.13
13:23
(0) В правом верхнем углу нажимай буковку Я
3 МихаилМ
 
25.03.13
13:26
CursorLocation зачем = 3 ?
4 gash85
 
25.03.13
13:36
(1) ой да не может такого быть!!!
(3) и с 2 и с 3 одинаково отрабатывает с ошибкой
5 gash85
 
25.03.13
13:56
Вопрос снят, косяк был в ответе sql-ной базы.
ЗЫ: приведенный выше код - правильный и рабочий.
6 rs_trade
 
25.03.13
14:25
(4) не знал да, что так можно.