powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Добавление записи в таблицу
15 сообщений из 15, страница 1 из 1
Добавление записи в таблицу
    #35124200
_Chaynik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем добрый день! Нужна помощь. Проблема такая: есть база данных с двумя таблицами: в первой-данные, вторая - служебная (используется при формировании ключевого поля). Ну и две формы, одна с гридом и кнопками (добавить, изменить, удалить) и вторая собственно для ввода данных с полями ввода. Жму кнопку добавить,открывается вторая форма, поля ввода недоступны, в таблице появляется пустая запись. Последующие добавления записей происходят нормально. Дальше, кнопкой удалить удаляю все записи (вернее они помечаются на удаление). Если set deleted on - та же история-первая добавляемая запись недоступна для ввода данных. Если set deleted off - все работает на ура. Причем когда добавлена пустая запись, после сохранения открываю ее кнопкой изменить - все нормально редактируется. Короче, проблемы возникают только при добавлении 1-й записи в таблицу. Подскажите пожалуйста, в чем может быть дело? Прошу больно не пинать за такие вопросы, я же чайник !!!
...
Рейтинг: 0 / 0
Добавление записи в таблицу
    #35124284
Galyamov Rinat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Похоже, что у тебя контролы привязаны к полям таблицы.
При этом при добавлении новой записи надо делать append blank, чтобы сначала
добавить пустую строку, а потом уже ее редактировать.

Ну и при таком подходе лучше использовать буферизацию.


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Добавление записи в таблицу
    #35124325
_Chaynik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Galyamov Rinat
Похоже, что у тебя контролы привязаны к полям таблицы.
При этом при добавлении новой записи надо делать append blank, чтобы сначала
добавить пустую строку, а потом уже ее редактировать.

Ну и при таком подходе лучше использовать буферизацию.




Все так и есть. Контролы привязаны к полям таблицы. Буферизация 5. Добавление записи происходит так: select таблица, затем append blank. Есть кнопки сохранить и отмена. Соответствено TableUpDate и TableRevert. К тому же данная проблема возникает при добавлении именно первой записи в таблице. Дальше все работает нормально.
...
Рейтинг: 0 / 0
Добавление записи в таблицу
    #35124468
Galyamov Rinat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Все так и есть. Контролы привязаны к полям таблицы. Буферизация 5.
> Добавление записи происходит так: select таблица, затем append blank. Есть
> кнопки сохранить и отмена. Соответствено TableUpDate и TableRevert. К тому
> же данная проблема возникает при добавлении именно первой записи в
> таблице. Дальше все работает нормально.

Дальше не подскажу - с буферизацией никогда не работал


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Добавление записи в таблицу
    #35124932
Burn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никогда такого не происходило при 5-й буферизации. И иделогически такая последовательность должна работать правильно.
Ващето если контролы привязаны к полям и становятся недоступными значит указатель стоит на EOF. Надо в отладчике пошагово посмотреть куда и почему у вас скачут записи. Смиотреть что возвращает TableUpdate(). Возможно чтото лишнее открывается в DE второй формы.
...
Рейтинг: 0 / 0
Добавление записи в таблицу
    #35124984
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_ChaynikВсе так и есть. Контролы привязаны к полям таблицы. Буферизация 5. Добавление записи происходит так: select таблица, затем append blank. Есть кнопки сохранить и отмена. Соответствено TableUpDate и TableRevert. К тому же данная проблема возникает при добавлении именно первой записи в таблице. Дальше все работает нормально.
попробуй thisform.Refresh() после append blank поставить.
возможно после добавления код отрабатывает, который указатель на конец таблицы ставит - SCAN, SUM, COUNT.
...
Рейтинг: 0 / 0
Добавление записи в таблицу
    #35125159
Galyamov Rinat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Давай сюда две маленькие формочки с одним контролом каждый и тестовую
табличку привязываемую к конролу, на которых будет видно твою проблему -
тебе создать тест 20 минут, а так гадать будем еще долго.


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Добавление записи в таблицу
    #35125167
Galyamov Rinat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Даже одну форму с инициализацией как будто форму вызвали для добавления
записи.

Будем посмотреть.


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Добавление записи в таблицу
    #35125324
apapacy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У вас типичное поведение, когда таблица на BOF/EOF.

Я сам не нашел приемемлого ворианта решения и делел так

if (eof() or bof()) and recco()>0
go recco()
endif
...
Рейтинг: 0 / 0
Добавление записи в таблицу
    #35125639
Galyamov Rinat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"apapacy" <nospam@sql.ru>; сообщил/сообщила в новостях следующее:
news:5274017@sql.ru...
> Автор: apapacy
> У вас типичное поведение, когда таблица на BOF/EOF.
>
> Я сам не нашел приемемлого ворианта решения и делел так
>
> if (eof() or bof()) and recco()>0
> go recco()
> endif

В корне не верно:
CREATE CURSOR test (Ntest i)

FOR lnI=1 TO 10

insert into test (ntest) VALUES (lnI)

ENDFOR



DELETE ALL



if (eof() or bof()) and recco()>0

go recco()

endif

?ntest



Тогда уж:

if (eof() or bof())

GO bottom

if (eof() or bof())

append blank

endif

endif





Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Добавление записи в таблицу
    #35125709
_Chaynik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот примерно то, что я сотворил
...
Рейтинг: 0 / 0
Добавление записи в таблицу
    #35125713
_Chaynik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, прошу прощения, второпях забыл привязать контролы во второй форме к полям таблицы, привязано только поле family
...
Рейтинг: 0 / 0
Добавление записи в таблицу
    #35125893
Burn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вот теперь все понятно - код на кнопке добавить:

Код: plaintext
1.
2.
3.
Do Form editbankobz

APPEND BLANK 
ThisForm.Refresh()

Что Вы собрались редактировать не добавив ни одной записи в таблицу?
Правильный порядок работы, вне зависимости работаете вы с буферизацией или нет:
Добавили новую запись - APPEND BLANK, внесли в нее значения (без разницы ручками или через REPLACE), сбросили обновления из буфера в таблицу - TableUpdate() (если таблица не буферезирована то последний пункт лишний)

Поэтому код кнопкт должен быть:

Код: plaintext
1.
2.
3.
4.
5.
APPEND BLANK 

Do Form editbankobz

ThisForm.Refresh()
...
Рейтинг: 0 / 0
Добавление записи в таблицу
    #35125953
_Chaynik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо! Когда все объяснили, действительно просто...
...
Рейтинг: 0 / 0
Добавление записи в таблицу
    #35126438
Galyamov Rinat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Спасибо! Когда все объяснили, действительно просто...

:-)

А это тебе слишком сложно было:
При этом при добавлении новой записи надо делать append blank, чтобы сначала
добавить пустую строку, а потом уже ее редактировать.

?????



Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Добавление записи в таблицу
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]