Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Не могу открыть одну из таблиц для редактирования


Автор: ylana 13.5.2005, 08:36
Здравствуйте!
Помогите, пожалуйста. У меня есть две таблицы с расширением .dbf. Нужно изменить определенную запись. Открываю первую таблицу. Все, на первый взгляд очень просто и работает.
Код

Table1.open;
Table1.Edit;
//ищу нужную запись;
Table1.FieldByName('...').AsString:='New value';
Table1.post;
Table1.close;

Теперь открываю вторую таблицу. Делаю все тоже самое.
Код

Table2.open;
Table2.Edit;
//ищу нужную запись;
Table2.FieldByName('...').AsString:='New value';
Table2.post;
Table2.close;

При попытке изменить нужную запись пишет, что таблица не открыта для редактирования или вставки. Что мне делать.

Автор: AntonSaburov 13.5.2005, 10:48
Проверить настройки компонентов TTable - может там дейтсвительно ReadOnly стоит. Или сам файл ReadOnly

Автор: SPrograMMer 13.5.2005, 11:24
Цитата(ylana @ 13.5.2005, 08:36)
Код

Table1.open;
Table1.Edit;  /// БРЕД!, сначала надо найти, а потом Edit делать...
//ищу нужную запись;
Table1.FieldByName('...').AsString:='New value';
Table1.post;
Table1.close;

т е:
Код

Table1.open;
While Not Table1.Eof Do
   //ищу нужную запись;
Table1.Edit;  //  а теперь, когда нашли - изменяем!
Table1.FieldByName('...').AsString:='New value';
Table1.post;
Table1.close;

Автор: SPrograMMer 13.5.2005, 11:36
Цитата(ylana @ 13.5.2005, 08:36)
При попытке изменить нужную запись пишет, что таблица не открыта для редактирования или вставки. Что мне делать.

вот-вот, когда ты делаешь сначал Edit, запись, причем первая, переходит в режим редактирования, затем когда ты начинаешь искать нужную тебе запись, ты перемещаешься по набору даных, при этом когда происходит переход к следующей записи, та которая была в режиме редактирования перестает быть таковой. И когда ты делаешь FieldByName...:='...' текущая запись не находится в режиме редактирования, аот и получаешь. В общем не соблюдён порядок действий....

Цитата(ylana @ 13.5.2005, 08:36)
Все, на первый взгляд очень просто и работает

с первой таблицой smile скорее всего, даже точно, та запись которую ты ищещь является первой: ты делаешь Edit, смотришь условие, которое верно, по набору данных не перемещаешься, запись в режиме редактирвоания остаются => дальнейшие строчки работают. smile

Автор: Гость_ylana 13.5.2005, 12:35
Большое спасибо, за объяснение, что в начале нужно найти запись, а потом ее редактировать.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)