02.02.2007, 20:05 | #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'а просьба не предлагать |
|
02.02.2007, 23:56 | #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;
__________________
Должен остаться только один. |
|
03.02.2007, 11:47 | #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; |
|
04.02.2007, 01:07 | #4 |
Участник
|
А можно ли создать подобным кодом новую таблицу, но не на базе существующей, а абсолютно новую, т.е. обьявив сразу поля, тип полей, первичный ключ?
|
|
04.02.2007, 10:52 | #5 |
Участник
|
Сложно. Нужно свой BLOB создавать кодом.
p.s. Оно того не стоит.
__________________
Должен остаться только один. |
|
05.02.2007, 16:47 | #6 |
Участник
|
Вы хотите сказать - если произвести копирование данных внутри таблицы Object - это поможет увидеть и использовать новую таблицу ? А, как на счет формы ? или отчета ?
Дело в том , что я уже пытался когда то получить новый объект в Navision путем добавления новых записей в Object. Запись создавал. Видел новый объект в дизайнере. Пытался запустить - но Nav выдавал сообщение об ошибке. |
|
05.02.2007, 16:53 | #7 |
Участник
|
Цитата:
Некоторая информация об этом здесь: http://forum.mazzy.ru/index.php?showtopic=...hl=fly&st=0 |
|
05.02.2007, 17:23 | #8 |
Участник
|
Цитата:
Вы хотите сказать - если произвести копирование данных внутри таблицы Object - это поможет увидеть и использовать новую таблицу ? А, как на счет формы ? или отчета ?
Дело в том , что я уже пытался когда то получить новый объект в Navision путем добавления новых записей в Object. Запись создавал. Видел новый объект в дизайнере. Пытался запустить - но Nav выдавал сообщение об ошибке.
__________________
Должен остаться только один. |
|