|
присвоение полей в datastore
|
|||
---|---|---|---|
#18+
добрый день! есть ПБ105 и Виста. Есть 2 datastore - исходный и результат. результат - подмножество исходного, наименования полей - одни и те же. хочу в цикле присваивать поля исходного в результирующий. хорошо бы - getitem(row, colname)/setitem(row,colname) но в datastore getitem не работает. получается что находить № поля в исходном datastore по имени в результате можно только полным перебором имен полей до совпадения с именем результирующего? тогда можно будет использовать DATA[]. что то заработался и никак не соображу. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2012, 15:16 |
|
присвоение полей в datastore
|
|||
---|---|---|---|
#18+
GetItem работает, только надо соответствующий тип указывать (GetItemString, etc.) Чтобы работало через data - нужно соответствие порядка полей sql-запроса Ну или как вариант - считайте список полей найдите нужное и присваивайте, если хотите можно с перехватом ошибки, т.е. просто присваиваете ничего не ища, а ошибку пропускаете ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2012, 15:45 |
|
присвоение полей в datastore
|
|||
---|---|---|---|
#18+
Так ведь есть RowsCopy на случай, если структуры одинаковые. И не надо ничего расписывать. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2012, 17:13 |
|
присвоение полей в datastore
|
|||
---|---|---|---|
#18+
Поправлю, если в sql-буфере порядок совпадает, но может и не сработать если таблицы разные, в этом плане присвоение по полю - верней:) И совсем необязательно использовать имена колонок, можно и через номера столбцов или data обратиться ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2012, 17:25 |
|
присвоение полей в datastore
|
|||
---|---|---|---|
#18+
я просто копирую строку. но не один в один а выборочно. это подпрограмма-и она не может опираться на фиксированные имена колонок. а только на параметры-такой параметр имя поля и getitem прекрасно подходит, но не работает. если использовать тип элемента - то это все равно что имя имя поля-типа getitemstring/number/decimal etc. если без типа чтобы использовать ДАТА то нужно знать номер колонки в одном датасторе а потом его искать в другом простым перебором-что некрасиво. если скажете что по другому нельзя-то так и буду... :-( ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2012, 18:00 |
|
присвоение полей в datastore
|
|||
---|---|---|---|
#18+
spas2001Поправлю, если в sql-буфере порядок совпадает, но может и не сработать если таблицы разные, в этом плане присвоение по полю - верней:) И совсем необязательно использовать имена колонок, можно и через номера столбцов или data обратиться а откуда брать номера столбцов-вот в чем вопрос? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2012, 18:01 |
|
присвоение полей в datastore
|
|||
---|---|---|---|
#18+
Лучше с типом:) Describe вам в помощь ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2012, 18:51 |
|
присвоение полей в datastore
|
|||
---|---|---|---|
#18+
spas2001,так и сделал-но думаю-может умные люди что подскажут!!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
26.11.2012, 19:05 |
|
присвоение полей в datastore
|
|||
---|---|---|---|
#18+
Не видя экрана, кое-что можно понять неверно. Но всё-таки...попытка не пытка. Итак, желаемая вами Getitem работает на Data Window, но не работает на Data Store, так сделайте вспомогательный невидимый Data Window, и работайте с ним. Чтобы никто не догадался, можно воспользоваться OpenUserObject типа Data Window , загнать данные в него, а потом закрыть CloseUserObject. Поднимете свой уровень на поляне Object Oriented. Я бы , так и сделал. Если у Data Window функция есть, а у Data Store нет, так надо подключать Data Window. Вот и всё. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2012, 14:51 |
|
|
start [/forum/topic.php?fid=15&fpage=13&tid=1335465]: |
0ms |
get settings: |
12ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
56ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
others: | 229ms |
total: | 385ms |
0 / 0 |