AXForum  
Вернуться   AXForum > Microsoft Dynamics NAV > NAV: Функционал
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 29.07.2008, 16:19   #1  
Nur1an is offline
Nur1an
Участник
 
9 / 10 (1) +
Регистрация: 25.10.2007
ADOConn Automation 'Microsoft ActiveX Data Objects 2.7 Library'.Connection
ADOrs Automation 'Microsoft ActiveX Data Objects 2.7 Library'.Recordset
ConnStr Text 200
AnzCount Text 30
OpenMethod Integer
LockMethod Integer
Name Text 200
Str Text 200

// Test ODBC-Connector
OpenMethod := 2; // 1=adOpenKeyset; 2=adOpenDynamic; 3= adOpenStatic
LockMethod := 3; // 1=dLockreadonly; 2=adLockPessimistic; 3=adLockOptimistic; 4=adLockBatchOptimistic
CREATE(ADOConn);
ConnStr := 'DSN=Navision;UID=Nurlan;PWD=*****;';
ADOConn.Open(ConnStr);

IF ADOConn.State = 1 THEN
MESSAGE('Welcome to Pubs!')
ELSE
MESSAGE('Sorry. No Pubs today.');



CREATE(ADOrs);

ADOrs := ADOConn.Execute('SELECT * FROM Клиент');

ADOrs.MoveFirst;
Name := ADOrs.Fields.Item('Название').Value;
Str := ADOrs.Fields.Item('Адрес').Value;

MESSAGE('Name %1 - Street %2', Name, Str);

ADOrs.MoveNext;
Name := ADOrs.Fields.Item('Название').Value;
Str := ADOrs.Fields.Item('Адрес').Value;

MESSAGE('Name %1 - Strasse %2', Name, Str);

// Update current data

ADOrs.Update('Название','ЮНИАРТ'); //<<<<<<<<<<<<<<<<<<< ВОТ ЭТА СТРОЧКА НЕ ВЫПОЛНЯЕТСЯ ! ! !

ADOrs.Close;
ADOConn.Close;
CLEAR(ADOrs);
CLEAR(ADOConn);
Старый 29.07.2008, 16:22   #2  
Голышев Михаил is offline
Голышев Михаил
Участник
 
106 / 10 (1) +
Регистрация: 03.07.2006
Сообщение об ошибке было бы ощутимым бонусом
Старый 30.07.2008, 11:35   #3  
.Quattro. is offline
.Quattro.
Участник
Лучший по профессии 2009
 
194 / 22 (1) +++
Регистрация: 22.05.2006
Кусок работающего кода:
Код:
Recordset.CursorLocation := 2;
Recordset.Open(QueryText,Conn,1,3);  // Conn - это объект ADO Connection

IF NOT (Recordset.BOF AND Recordset.EOF) THEN BEGIN
   Recordset.Fields.Item(1).Value := 'Новое Значение';
   ... // Другие поля
   Recordset.Update;
END;
Recordset.Close;
CLEAR(Recordset);
Курсор надо использовать KeySet, а не Dynamic, если надо обновить запись.
Возможно, что в вашем случае проще обновить SQL запросом и не связываться с ADO Recordset:
ADOConn.Execute('Update Customer Set [Name] = ''Вася'' where [No_] = ''C0001''');
Старый 30.07.2008, 12:21   #4  
Nur1an is offline
Nur1an
Участник
 
9 / 10 (1) +
Регистрация: 25.10.2007
спасибо, а код ошибки такой

---------------------------
Microsoft Business Solutions-Navision
---------------------------
Сообщение для C/AL программистов:

В методе Update возникло исключение. Элемент управления OLE или Automation server вернул ошибку (HRESULT) -2147352567.
Компонент не обеспечил описание исключения.

---------------------------
ОК
---------------------------
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 23:43.