18.10.2007, 12:51 | #1 |
Участник
|
Добавление записи через qbds
Добрый день. Не подскажите можно ли программным способом добавить запись в таблицу используя конструктор qbds = q.addDataSource(table) и т.д или это служит только для выборки ?
|
|
18.10.2007, 12:59 | #2 |
Участник
|
Ну, через qbds вы точно ничего не добавите, потому как это не записи в таблице, а простое описание запроса.
А во-вторых, ведь когда вы делаете выборку, вы все равно пишите что-то типа X++: queryRun = new QueryRun(query); while (queryRun.next()) { table = queryRun.get(tableNum(MyTable)); //table.bla-bla-bla } вот ее и используйте для создания записи |
|
18.10.2007, 13:03 | #3 |
SAP
|
Смотрите как работают QueryRun с временными таблицами qr.setCursor(table) и т.д. (поиском) или я вас не так понял ....
|
|
18.10.2007, 13:53 | #4 |
Участник
|
да в общем то задача состоит в следующем необходимо кодом добавить записи во временную таблицу, потом на нее наложить range и уже через QueryRun "читать". При чем такой range , который не всегда можно реализовать через стандартный select..... . Я хотел сначала сделать так :
tmpTable.Field = bla; tmpTable.insert(); qbds = q.addDataSource(tablenum( tmpTable )); qbds.addRange(... и т.д. ничего не получилось так как в query попал уже другой объект. Вот и подумал что может быть как то через Query можно добавлять записи а потом на этот же объект наложить фильтр. |
|
18.10.2007, 13:54 | #5 |
Участник
|
Наверное, нужен \System Documentation\Classes\DictTable\makeRecord
X++: Common record = new SysDictTable(tableID).makeRecord();
;
record.insert(); |
|
18.10.2007, 13:55 | #6 |
Участник
|
А... тогда \System Documentation\Classes\QueryRun\setCursor
|
|
18.10.2007, 14:09 | #7 |
Участник
|
Цитата:
Сообщение от Pustik
да в общем то задача состоит в следующем необходимо кодом добавить записи во временную таблицу, потом на нее наложить range и уже через QueryRun "читать". При чем такой range , который не всегда можно реализовать через стандартный select..... . Я хотел сначала сделать так :
tmpTable.Field = bla; tmpTable.insert(); qbds = q.addDataSource(tablenum( tmpTable )); qbds.addRange(... и т.д. ничего не получилось так как в query попал уже другой объект. Вот и подумал что может быть как то через Query можно добавлять записи а потом на этот же объект наложить фильтр. Последний раз редактировалось ice; 18.10.2007 в 14:26. |
|
|
За это сообщение автора поблагодарили: Pustik (1). |
18.10.2007, 14:17 | #8 |
Участник
|
дак я так и сделал, только после того как я составил запрос, по QueryRun - уже нет ни одной записи. Все хорошо когда таблица не временная . Да добавляешь записи они пишутся на SQL и оттуда уже Query подхватывает эти строки. А в случае со временной таблицей он их теряет. |
|
18.10.2007, 14:21 | #9 |
Участник
|
|
|
18.10.2007, 14:38 | #10 |
Участник
|
не, мейкрекорд не нужен - я думал проблема создать запись по tableID только сеткурсор
|
|
18.10.2007, 14:43 | #11 |
Участник
|
|
|
18.10.2007, 14:51 | #12 |
SAP
|
Цитата:
дак я так и сделал, только после того как я составил запрос, по QueryRun - уже нет ни одной записи. Все хорошо когда таблица не временная . Да добавляешь записи они пишутся на SQL и оттуда уже Query подхватывает эти строки. А в случае со временной таблицей он их теряет.
|
|
18.10.2007, 14:54 | #13 |
Участник
|
|
|
18.10.2007, 14:57 | #14 |
Участник
|
всем спасибо с setcursor -ом пошло )))
|
|
|
|