|
Удаление записи
|
|||
---|---|---|---|
#18+
Существует представление выведенное в грид. Поля взяты из одной таблицы, с добавлением 2 вычисляемых полей. Мне нужно было, чтобы при удалении записи из представления, удалялась запись и в самой таблице. Это я сделал. Но если закрыть бд, то при новом открытии все удаленные записи оказываются на месте. Таблица и представление имеют buffermode=5. код кнопки удаления: set deleted on delete select view1 tableupdate() select klient set deleted on delete tableupdate() помогите, пожалуйста, разобраться в этой проблеме! ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2010, 19:17 |
|
Удаление записи
|
|||
---|---|---|---|
#18+
tim07при новом открытии все удаленные записи оказываются на месте.set dele on перед открытием (например, в load формы) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2010, 20:29 |
|
Удаление записи
|
|||
---|---|---|---|
#18+
И еще хотел узнать: какое свойство грида отвечает за то, что "выбрана какая-либо запись" в данный момент или нет! а то будет удалять первую попавшуюся запись без выбора! ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2010, 20:31 |
|
Удаление записи
|
|||
---|---|---|---|
#18+
tim07И еще хотел узнать: какое свойство грида отвечает за то, что "выбрана какая-либо запись" в данный момент или нет! а то будет удалять первую попавшуюся запись без выбора!Грид тут ни при чем. Это в таблице под гридом все можно найти. Например, номер записи или определенное значение определенного поля. select table1 delete next 1 && удалит запись в таблице table1, которая лежит под гридом и на которой стоит маркер. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2010, 20:36 |
|
Удаление записи
|
|||
---|---|---|---|
#18+
поставил set delete on в лод формы не помогло, потом засунул его в инит pageframe, то же самое. записи восстанавливаются после перезапуска. а если в гриде не выбрана запись, то что будет удаляться? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2010, 20:42 |
|
Удаление записи
|
|||
---|---|---|---|
#18+
tim07а если в гриде не выбрана запись, то что будет удаляться? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2010, 21:36 |
|
Удаление записи
|
|||
---|---|---|---|
#18+
igorbiktim07а если в гриде не выбрана запись, то что будет удаляться?Случайно на кнопку нажал. А самому слабО сообразить? Проверить? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2010, 21:38 |
|
Удаление записи
|
|||
---|---|---|---|
#18+
проверил, если в гриде не выбрана запись, все равно удаляется. а мне нужно чтоб не удалялось. может быть есть свойство у грида такое, которое принимает определенное значение, если запись выбрана, и другое, если не выбрана? так что же делать с set delete on? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2010, 22:13 |
|
Удаление записи
|
|||
---|---|---|---|
#18+
tim07, в гриде нет никаких записей, он их только отображает. Записи есть в таблице. Если вы выбираете какую-нибудь таблицу в первый раз, то активной становится ее первая запись. Соответственно она и удалится. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2010, 22:22 |
|
Удаление записи
|
|||
---|---|---|---|
#18+
это я понимаю. вопрос вот в чем: как мне сделать так, чтоб, если юзер не выбрал ничего в гриде, выдавалось определенное сообщение, а если выбрал, то запись удалялась. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2010, 22:32 |
|
Удаление записи
|
|||
---|---|---|---|
#18+
Идея выглядит странно. Зачем это нужно? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2010, 22:33 |
|
Удаление записи
|
|||
---|---|---|---|
#18+
ладно, уже сделал что хотел - просто в кнопке удаления сет фокус на грид и все. теперь хочешь не хочешь придется выбирать что удалять. только теперь другая проблема. удаляю записи и из представления и из таблицы, а они удаляются только в таблице. но если перезапустить то, все нормально и там удаляются и тут. код кнопки удаление: SELECT view1 Set Deleted On DELETE IF !EOF() Skip 1 EndIF IF EOF() .AND. !BOF() Skip -1 ENDIF TABLEUPDATE() SELECT klient Set Deleted On DELETE IF !EOF() Skip 1 EndIF IF EOF() .AND. !BOF() Skip -1 ENDIF TABLEUPDATE() thisform.pageframe1.page1.grid1.SetFocus ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2010, 23:04 |
|
Удаление записи
|
|||
---|---|---|---|
#18+
В общем если запускаешь в первый раз, ничего не удаляется ни в представлении ни в таблице. Второй и последующие - нормально. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2010, 23:09 |
|
Удаление записи
|
|||
---|---|---|---|
#18+
Никак не могу понять! Как можно НОРМАЛЬНО удалить данные (пометить, т.е. не физически) из представления(view1), которое создано на основе таблицы(klient), которая буферизована!!! Ничего не получается. То ничего не удаляется, то удаляется но не то! Подскажите пожалуйста как это правильно сделать! ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2010, 00:24 |
|
Удаление записи
|
|||
---|---|---|---|
#18+
Вроде сделал, правда коряво, но это не так важно! Целый день отняло! Остался только один глюк -- если вы запустили форму в первый раз, то записи не удаляться, как ни крути, а во второй раз -- все нормально! Что такое? Кажется нигде ничего не писал лишнего... вот код кнопки удаление: *удаляем из таблицы LOCAL rem select view1 rem=view1.id_pass SELECT klient LOCATE FOR rem==klient.id_pass IF FOUND() Set Deleted On DELETE IF !EOF() Skip 1 EndIF IF EOF() .AND. !BOF() Skip -1 ENDIF TABLEUPDATE() ENDIF *удаляем из вьюхи SELECT view1 Set Deleted On DELETE IF !EOF() Skip 1 EndIF IF EOF() .AND. !BOF() Skip -1 EndIF TABLEUPDATE() thisform.pageframe1.page1.grid1.SetFocus ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2010, 01:48 |
|
Удаление записи
|
|||
---|---|---|---|
#18+
tim07, set delete on - настроечная команда. Ее надо давать 1 (один) раз, а не во всех местах. Обычно это где-то в начале программы. Если таки эта настройка сбрасывается, то надо искать это место, а не вопить про физическое удаление записей. И еще не указана версия фокса. В некоторых старых версиях запросы select sql не учитывали указанную настройку и в них приходилось добавлять в условие where проверку на "помеченность" записи с функцией Deleted(). ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2010, 14:25 |
|
Удаление записи
|
|||
---|---|---|---|
#18+
tim07, SET DELETE влияет на поиск , а не удаление, т.е. ты хоть и навтыкал SET DELETE но не туда. Надо было перед LOCATE ставить. А по-хорошему надо в начало программы и DataEnvironment.BeforeOpenTables() если форма с PrivateDataSession. Т.к. часть SETов сбрасывается для формы (или отчета) с PrivateDataSession. В т.ч. SET DELETE Лично я собираю все SETы в один PRG и вызываю его из DataEnvironment.BeforeOpenTables() формы ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2010, 14:42 |
|
|
start [/forum/topic.php?fid=41&msg=36619877&tid=1585293]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
42ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 9ms |
total: | 133ms |
0 / 0 |