| 
 | 
| 
 
Delete??? Как это работает? 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Здравствуйте! У меня есть проблема, ниже я попытаюсь изложить её суть. Я работаю в Visual FOX PRO V7.0. Создаю базу данных, потом создаю в ней таблицу. Потом при помощи Form Wizard-а создаю простую форму, на форме отображаются таблица и навигатор по таблице. Если добавить данные (при помощи панели НАВИГАТОР) – данные добавляются, если их потом редактировать – редактируются, а вот проблема с удалением! Удаляю – они вроде удаляются, т.е. навигатор их игнорирует, не отображает ни как…, а на самом деле записи в таблице остаются!!! Это видно если в Project Manager (закладка DATA) курсор поставить на имя таблицы и нажать кнопку Browse. Открывается таблица и там эти данные легко видеть, правда, напротив, вроде как уже несуществующей, записи (в левой части) отображается чёрный прямоугольник. Например: - Добавляю запись с ID 1 - Удаляю запись с ID 1 - Если я пытаюсь потом опять добавить запись с ID 1, то вылетает ошибка - Failed to update table:Unique index violation. Как мне сделать так чтоб из таблицы эти записи удалялись по нажатию кнопки DELETE на навигаторе? С уважением Руслан. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.03.2003, 20:22 | 
  
  
  
   | 
||
| 
 
Delete??? Как это работает? 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Смотри в хелпе DELETE, RECALL, SET DELETED, PACK. > Если я пытаюсь потом опять добавить запись с ID 1, то вылетает ошибка - Failed to update table:Unique index violation. В таблице поставь фильтр на индекс FOR !DELETED() и создай индекс INDEX on DELETED() TAG DELETED(). Это описано в разделе хелпа по оптимизации (попробуй поиск по 'optimizing'). Сейчас подробнее не могу, дома фокса с хелпом нет, а инет загружен, по msdn.microsoft.com особо не полазишь. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.03.2003, 22:19 | 
  
  
  
   | 
||
| 
 
Delete??? Как это работает? 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  При удалении командой  DELETE  записть  только помечается , как удаленная.  Физическое удаление записей из файла происходит при выполнении операции PACK (в монопольном режиме). Однако, не надо злоупотреблять этим - достаточно паковать таблицу раз в месяц (неделю), в зависимости от интенсивности работы с ней. Для того, чтобы не видеть удаленные записи, в программе нужно установить SET DELETE ON . Учти, что при этом проблемы уникальности ключей останутся в силе, т.к. запись все же существует. Рецепт - см. постинг NNN насчет фильтра в индексе. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 18.03.2003, 10:12 | 
  
  
  
   | 
||
| 
 
Delete??? Как это работает? 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  При удалении запись помечается как удаленная и только после команды PACK удаляется из таблицы. А что касается <Failed to update table:Unique index violation.> скорее всего индекс уникальный и так как после команды DELETE запись не удаляется из таблицы, то до команды PACK нельзя добавить запись с таким же уникальным ключом. Можно сделать так: LOCATE FOR İD = 1 İF FOUND() RECALL REPLACE [FİELD1] WITH '', [FIELD2] WITH 0 ELSE APPEND BLANK REPLACE ID WITH [NUM] ENDİF ну или что то похожее ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 18.03.2003, 10:17 | 
  
  
  
   | 
||
| 
 | 

start [/forum/topic.php?fid=41&msg=32121552&tid=1598383]:  | 
    0ms | 
get settings:  | 
    9ms | 
get forum list:  | 
    13ms | 
check forum access:  | 
    3ms | 
check topic access:  | 
    3ms | 
track hit:  | 
    59ms | 
get topic data:  | 
    10ms | 
get forum data:  | 
    2ms | 
get page messages:  | 
    45ms | 
get tp. blocked users:  | 
    2ms | 
| others: | 233ms | 
| total: | 379ms | 

| 0 / 0 | 

    Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
    
    
    «На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
    
    
    ... ля, ля, ля ...