|
Как удалить только часть записи
|
|||
---|---|---|---|
#18+
Люди, подскажите, как бы мне выкрутиться. Есть DW, в которое вытягивается полей 15, из них 3 обновляемые(т.е указаны в update properties). Как мне сделать удаление так, чтоб с экрана не уходили все 15 полей записи, а только 3 обновляемых поля (т.е становились пустыми на экране), при этом, естсно, изменения должны записаться в базу. И возможно ли сделать отмену этих действий, скажем, по нажатию какой-либо кнопки? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2004, 10:35 |
|
Как удалить только часть записи
|
|||
---|---|---|---|
#18+
Делаете хранимую процедуру в СУБД с 3 параметрами, в ней соотвествующе, если все 3 параметра пустые, то удаляете запись в нужной таблице, иначе добавляете/изменяете. В DW вешаете эту ХП на Insert/Update, на форме вместо удаления просто обнуляете 3 нужных поля. Усё :) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2004, 13:41 |
|
Как удалить только часть записи
|
|||
---|---|---|---|
#18+
Рассматривать вашу проблему вне контекста структуры данных мягко говоря сложно. Что есть в вашем понятии удаление? Если речь идет об удалении из DW, то самое простое это не выполнять deleteRow(...), а просто удалить данные из нужных полей. Если речь идет об удалении данных из БД, то что произойдет после Retrieve()? Будут ли выбраны те данные, которые вы уже удалили? Решений по организации отмены удаления тоже может быть несколько. Во первых вы можите использовать буфер dw Original!. Во вторых, можите унаследовать стандартный DataWindow и объявить в этом объекте допустим 3 Instance переменных, в которые перед удалением будете сохранять значения ваших полей. В третьих можите организовать 3 стека для хранения всех изменений в течениии работы со своим DataWindow. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2004, 06:44 |
|
Как удалить только часть записи
|
|||
---|---|---|---|
#18+
Большое спасибо за ответы! To Ermak: Данные из базы должны удалиться. А после Retrieve() будут показываться 12 заполненных полей, и 3 пустых, им соответствующих. А вот такой вопрос - как удалить данные из нужных полей? Пробовал в них нулл записывать, но с DateTime непонятки выходят ... |
|||
:
Нравится:
Не нравится:
|
|||
29.06.2004, 14:05 |
|
Как удалить только часть записи
|
|||
---|---|---|---|
#18+
to ASCRUS: а как в ХП различить Insert и Update? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.06.2004, 14:40 |
|
Как удалить только часть записи
|
|||
---|---|---|---|
#18+
Levonto ASCRUS: а как в ХП различить Insert и Update?Можно передать в одном из параметров процедуры ... |
|||
:
Нравится:
Не нравится:
|
|||
29.06.2004, 14:46 |
|
Как удалить только часть записи
|
|||
---|---|---|---|
#18+
Можно передавать параметр, можно сделать 2 ХП, а если Primary Key не IDENTITY и СУБД ASA9, то можно и без параметра одной процедурой обойтись: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.06.2004, 15:03 |
|
Как удалить только часть записи
|
|||
---|---|---|---|
#18+
Спасибо, с Insert/Update разобрался. А всё-таки как поля в записи по-человечески очистить? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.06.2004, 17:34 |
|
Как удалить только часть записи
|
|||
---|---|---|---|
#18+
Обьявляете переменные, соотвествующие типам полей, устанавливаете их в NULL функцией SETNULL, потом соотвествующе заносите их в поля через SETITEM. Например, есть поле Name стрингового типа: Код: plaintext 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.06.2004, 17:39 |
|
|
start [/forum/topic.php?fid=15&msg=32586541&tid=1339052]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
33ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 144ms |
0 / 0 |