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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 07.05.2008, 13:24   #1  
smoyk is offline
smoyk
Участник
 
188 / 13 (1) ++
Регистрация: 20.04.2007
Цитата:
Сообщение от romeo Посмотреть сообщение
Зачем расширили первичный ключ?
Зачем оставили поле автоинкрементом, если надобность расширять ключ обоснована?
Почувствовал себя идиотом)))
Сейчас усиленно пытаюсь сообразить "а зачем действительно?", но что-то внятного ответа нет... Мда.
Старый 07.05.2008, 11:35   #2  
artkashin is offline
artkashin
Участник
MCBMSS
 
519 / 18 (2) ++
Регистрация: 06.12.2006
Цитата:
Сообщение от smoyk Посмотреть сообщение
Пробовал с CLEAR (такой баг мне известен), не помогало.
Таблица не временная.
id действительно инкремент.
Значения смотрел: id был равен значению id первой записи в НД (на таблице стоят фильтры, впрочем пробовал и без них). Значение просто не увеличивалось.
Все надоело, сделал через запрос на сервер
Код:
	cuSQL.Execute('INSERT INTO InventoryLine (idIH, ItemCode, UnitPrise, CountDoc, SumDoc) '+
				  'VALUES ('+
				  FORMAT(Rec.id)+','''+
				  DELCHR(FORMAT(adoRec1.Fields.Item(0).Value),'=',' ')+''','+
				  DELCHR(FORMAT(adoRec1.Fields.Item(1).Value),'=',' ')+','+
				  DELCHR(FORMAT(adoRec1.Fields.Item(2).Value),'=',' ')+','+
				  DELCHR(FORMAT(adoRec1.Fields.Item(3).Value),'=',' ')+')');
Работает. Всем спасибо за советы и помощ.

p.s. В тригере insert много чего написано, куда смотреть не знаю. Не могу понять, как то, что там написано могло бы помешать увеличению значения автоинкрементного поля. Впрочем, в navision все возможно)))
Хм.. а вот это странно. Если у вас SQL версия, то для полей AutoIncrement на сиквеле ставится свойство Identity 1, а это значит, что данное поле нельзя "править" ручками.
Скорее всего произошел баг и для AutoIncrement поля из НАВ, и на сиквеле для поля Identity = 0? Так?
Старый 07.05.2008, 11:42   #3  
RedFox is offline
RedFox
Участник
 
1,441 / 10 (0) +
Регистрация: 28.12.2004
Адрес: Киев
Цитата:
Сообщение от smoyk Посмотреть сообщение
Пробовал с CLEAR (такой баг мне известен), не помогало.
Таблица не временная.
id действительно инкремент.
Значения смотрел: id был равен значению id первой записи в НД (на таблице стоят фильтры, впрочем пробовал и без них). Значение просто не увеличивалось.
Все надоело, сделал через запрос на сервер
Код:
	cuSQL.Execute('INSERT INTO InventoryLine (idIH, ItemCode, UnitPrise, CountDoc, SumDoc) '+
				  'VALUES ('+
				  FORMAT(Rec.id)+','''+
				  DELCHR(FORMAT(adoRec1.Fields.Item(0).Value),'=',' ')+''','+
				  DELCHR(FORMAT(adoRec1.Fields.Item(1).Value),'=',' ')+','+
				  DELCHR(FORMAT(adoRec1.Fields.Item(2).Value),'=',' ')+','+
				  DELCHR(FORMAT(adoRec1.Fields.Item(3).Value),'=',' ')+')');
Работает. Всем спасибо за советы и помощ.

p.s. В тригере insert много чего написано, куда смотреть не знаю. Не могу понять, как то, что там написано могло бы помешать увеличению значения автоинкрементного поля. Впрочем, в navision все возможно)))
Если честно, то я немного не понимаю зачем так сложно делать, чтобы увеличить значение? Неужели нельзя вручную найти последнюю запись и увеличить значение?
Поссмотрите столько времени занимает образотка этого запроса и обычного, как с FINDLAST (хотя наверное я не понял всей идеи применения)
 


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

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

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