![]() |
#1 |
Участник
|
Всем удачного дня.
Возможно кто-нибудь уже сталкивался с задачей модификации таблицы Object.. Хочется программно получить новую таблицу, с полями аналогичными существующей. Следующий код вызывает исключительную ситуацию и закрывает Navision. Код: recObject Record Object ------------ recObject.GET(recObject.Type::Table,'',17); recObject.ID := 50000; recObject.Name := recObject.Name+ ' new'; recObject.INSERT(FALSE) Более чем уверен что это не возможно, но хотелось бы чтобы меня в этом убедили ![]() Всем спасибо. P.S. Nav 4.0 SP2 + MS SQL 2005 P.P.S. Варианты с редактированием BLOB'а просьба не предлагать ![]() |
|
![]() |
#2 |
Участник
|
Почему не возможно? Все возможно. Только не нужно.
Таким заклинаниями это не сделать. Нужно вот такое волшебство. Код: Object.GET(Object.Type::Table,'',17); NewObject.INIT; NewObject.TRANSFERFIELDS(Object); NewObject.ID := 50000; NewObject.Name := 'new'; Object.CALCFIELDS("BLOB Reference"); Object."BLOB Reference".CREATEINSTREAM(InStream1); NewObject."BLOB Reference".CREATEOUTSTREAM(OutStream1); COPYSTREAM(OutStream1, InStream1); NewObject.INSERT;
__________________
Должен остаться только один. |
|
![]() |
#3 |
Участник
|
Цитата:
Сообщение от NeNavision
![]() Почему не возможно? Все возможно. Только не нужно.
Таким заклинаниями это не сделать. Нужно вот такое волшебство. Код: Object.GET(Object.Type::Table,'',17); NewObject.INIT; NewObject.TRANSFERFIELDS(Object); NewObject.ID := 50000; NewObject.Name := 'new'; Object.CALCFIELDS("BLOB Reference"); Object."BLOB Reference".CREATEINSTREAM(InStream1); NewObject."BLOB Reference".CREATEOUTSTREAM(OutStream1); COPYSTREAM(OutStream1, InStream1); NewObject.INSERT; |
|
![]() |
#4 |
Участник
|
А можно ли создать подобным кодом новую таблицу, но не на базе существующей, а абсолютно новую, т.е. обьявив сразу поля, тип полей, первичный ключ?
|
|
![]() |
#5 |
Участник
|
Сложно. Нужно свой BLOB создавать кодом.
p.s. Оно того не стоит.
__________________
Должен остаться только один. |
|
![]() |
#6 |
Участник
|
Вы хотите сказать - если произвести копирование данных внутри таблицы Object - это поможет увидеть и использовать новую таблицу ? А, как на счет формы ? или отчета ?
Дело в том , что я уже пытался когда то получить новый объект в Navision путем добавления новых записей в Object. Запись создавал. Видел новый объект в дизайнере. Пытался запустить - но Nav выдавал сообщение об ошибке. |
|
![]() |
#7 |
Участник
|
Цитата:
Некоторая информация об этом здесь: http://forum.mazzy.ru/index.php?showtopic=...hl=fly&st=0 |
|
![]() |
#8 |
Участник
|
Цитата:
Вы хотите сказать - если произвести копирование данных внутри таблицы Object - это поможет увидеть и использовать новую таблицу ? А, как на счет формы ? или отчета ?
Дело в том , что я уже пытался когда то получить новый объект в Navision путем добавления новых записей в Object. Запись создавал. Видел новый объект в дизайнере. Пытался запустить - но Nav выдавал сообщение об ошибке.
__________________
Должен остаться только один. |
|