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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 20.08.2003, 09:39   #1  
Valia is offline
Valia
Участник
 
139 / 23 (1) +++
Регистрация: 09.07.2003
Адрес: там
запись в таблицу
Есть проблема:
необходимо данные из одной таблицы переписать в другую

Приведите пожалуйста пример кода, в котором производилась бы такая операция, а то в прынципе с помощью чего это делается, представление имею, а все равно то - то не выходит

Заранее спасибо
Старый 20.08.2003, 09:55   #2  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
PHP код:
     SomeTable      someTable;
     
AnotherTable   anotherTable;

     while 
select someTable 
     

           
anotherTable.field1 someTable.anotherField1;
           
// ....................
           
anotherTable.insert();
     } 
Старый 20.08.2003, 09:57   #3  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Если Аксапта третья и данные переписываются один в один, то можно так:

PHP код:
Invent invent
Invent invent2

INSERT_RECORDSET invent(ItemIdItemName
                             
SELECT ItemIdItemName FROM invent2 
                                                              WHERE invent2
.ItemId == 'Мяч'
Старый 20.08.2003, 11:23   #4  
Valia is offline
Valia
Участник
 
139 / 23 (1) +++
Регистрация: 09.07.2003
Адрес: там
Все вроде бы хорошо, но в данном коде

OdbcConnection C;
Statement S;
ResultSet R;
LoginProperty LP = new LoginProperty();
a a; ///где a, b, c -поля таблицы a
str i;
vsveshivanie vs;
;


LP.setDSN("a");

C = new OdbcConnection(LP);

S = C.createStatement();

R = S.executeQuery ('SELECT a,b,c FROM a');

while (R.next())
{
print R.getString(1);
print R.getString(2);
print R.getString(3);
a.a = R.getString(1);
a.insert();
}
i='l';


вылезает ошибка на строке a.a = R.getString(1);
Да и вообще, если вместо нее поставить
i = R.getString(1); происходит тоже самое

Подскажите пожалуйста в чем проблема

Заранее спасибо
Старый 20.08.2003, 11:23   #5  
Yuri Safronov is offline
Yuri Safronov
Участник
 
140 / 55 (2) ++++
Регистрация: 21.08.2002
Адрес: Москва
Цитата:
Если Аксапта третья и данные переписываются один в один, то можно так:
Почему? Что нам мешает сделать так:

PHP код:
Invent invent
Invent invent2

INSERT_RECORDSET invent(ItemIdItemId
                             
SELECT ItemIdItemName FROM invent2 
                                                              WHERE invent2
.ItemId == 'Мяч'
и вообще, лучше наверное вот так:

PHP код:
Invent   invent
Invent2 invent2

INSERT_RECORDSET invent(ItemIdItemId
                             
SELECT ItemIdItemName FROM invent2 
                                                              WHERE invent2
.ItemId == 'Мяч'
__________________
yurisafronov@mail.ru
skype: y.safronov
Старый 20.08.2003, 11:27   #6  
Yuri Safronov is offline
Yuri Safronov
Участник
 
140 / 55 (2) ++++
Регистрация: 21.08.2002
Адрес: Москва
Это известный глюк. Используя класс ResultSet нельзя обращаться к одному и тому же полю несколько раз. На форуме про это уже писали, надо поискать.
__________________
yurisafronov@mail.ru
skype: y.safronov
Старый 20.08.2003, 12:15   #7  
Valia is offline
Valia
Участник
 
139 / 23 (1) +++
Регистрация: 09.07.2003
Адрес: там
А как можно по другому решить эту проблему в версии 2.5?
Может есть другой способ, переписать данные из одно таблицы в другую?
Старый 20.08.2003, 12:27   #8  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
А в чем проблема то ?

Замените вот это:

PHP код:
while (R.next())
{
print 
R.getString(1);
print 
R.getString(2);
print 
R.getString(3);
a.R.getString(1);
a.insert();

на

PHP код:
str s;
;
while (
R.next())
{
R.getString(1);
print 
s;
print 
R.getString(2);
print 
R.getString(3);
a.s;
a.insert();

Старый 20.08.2003, 12:28   #9  
Garic is offline
Garic
NavAx
Аватар для Garic
NavAx Club
 
393 / 63 (3) ++++
Регистрация: 23.07.2002
Адрес: Москва
Если нужно переписать данные из таблицы которая находится в текущей базе - пользуйтесь while select. Если из другой, то так как Вы писали через odbc, только

PHP код:
while (R.next())
{
temp R.getString(1);
print 
temp;
print 
R.getString(2);
print 
R.getString(3);
a.temp;
a.insert();
}
i='l'
__________________
С уважением, Игорь Ласийчук.
Старый 20.08.2003, 12:29   #10  
Yuri Safronov is offline
Yuri Safronov
Участник
 
140 / 55 (2) ++++
Регистрация: 21.08.2002
Адрес: Москва
while (R.next())
{
a.a = R.getString(1);
a.b = R.getString(2);
a.c = R.getString(3);

a.insert();
}
__________________
yurisafronov@mail.ru
skype: y.safronov
Старый 20.08.2003, 13:16   #11  
Valia is offline
Valia
Участник
 
139 / 23 (1) +++
Регистрация: 09.07.2003
Адрес: там
Огромное всем спасибо за помощь
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Не корректно сохраняет запись в inventTable Starling DAX: Программирование 8 31.03.2008 15:30
Запись с таблицу ProdRouteTrans Rioter DAX: Программирование 1 21.02.2006 15:48
Ошибка при импорте демоданных (Axapta 3.0 CIS SP1) KocDm DAX: Администрирование 2 11.08.2005 12:04
HELP ! Корректная запись в таблицу anuniquename DAX: Программирование 2 17.03.2005 09:24
Русская локализация Axapta 3 ? SlavaK DAX: Администрирование 59 01.07.2003 22:38
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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