|
|
|
Добавление записи в таблицу
|
|||
|---|---|---|---|
|
#18+
Всем добрый день! Нужна помощь. Проблема такая: есть база данных с двумя таблицами: в первой-данные, вторая - служебная (используется при формировании ключевого поля). Ну и две формы, одна с гридом и кнопками (добавить, изменить, удалить) и вторая собственно для ввода данных с полями ввода. Жму кнопку добавить,открывается вторая форма, поля ввода недоступны, в таблице появляется пустая запись. Последующие добавления записей происходят нормально. Дальше, кнопкой удалить удаляю все записи (вернее они помечаются на удаление). Если set deleted on - та же история-первая добавляемая запись недоступна для ввода данных. Если set deleted off - все работает на ура. Причем когда добавлена пустая запись, после сохранения открываю ее кнопкой изменить - все нормально редактируется. Короче, проблемы возникают только при добавлении 1-й записи в таблицу. Подскажите пожалуйста, в чем может быть дело? Прошу больно не пинать за такие вопросы, я же чайник !!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2008, 14:07 |
|
||
|
Добавление записи в таблицу
|
|||
|---|---|---|---|
|
#18+
Похоже, что у тебя контролы привязаны к полям таблицы. При этом при добавлении новой записи надо делать append blank, чтобы сначала добавить пустую строку, а потом уже ее редактировать. Ну и при таком подходе лучше использовать буферизацию. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2008, 14:30 |
|
||
|
Добавление записи в таблицу
|
|||
|---|---|---|---|
|
#18+
Galyamov Rinat Похоже, что у тебя контролы привязаны к полям таблицы. При этом при добавлении новой записи надо делать append blank, чтобы сначала добавить пустую строку, а потом уже ее редактировать. Ну и при таком подходе лучше использовать буферизацию. Все так и есть. Контролы привязаны к полям таблицы. Буферизация 5. Добавление записи происходит так: select таблица, затем append blank. Есть кнопки сохранить и отмена. Соответствено TableUpDate и TableRevert. К тому же данная проблема возникает при добавлении именно первой записи в таблице. Дальше все работает нормально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2008, 14:43 |
|
||
|
Добавление записи в таблицу
|
|||
|---|---|---|---|
|
#18+
> Все так и есть. Контролы привязаны к полям таблицы. Буферизация 5. > Добавление записи происходит так: select таблица, затем append blank. Есть > кнопки сохранить и отмена. Соответствено TableUpDate и TableRevert. К тому > же данная проблема возникает при добавлении именно первой записи в > таблице. Дальше все работает нормально. Дальше не подскажу - с буферизацией никогда не работал Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2008, 15:18 |
|
||
|
Добавление записи в таблицу
|
|||
|---|---|---|---|
|
#18+
Никогда такого не происходило при 5-й буферизации. И иделогически такая последовательность должна работать правильно. Ващето если контролы привязаны к полям и становятся недоступными значит указатель стоит на EOF. Надо в отладчике пошагово посмотреть куда и почему у вас скачут записи. Смиотреть что возвращает TableUpdate(). Возможно чтото лишнее открывается в DE второй формы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2008, 17:34 |
|
||
|
Добавление записи в таблицу
|
|||
|---|---|---|---|
|
#18+
_ChaynikВсе так и есть. Контролы привязаны к полям таблицы. Буферизация 5. Добавление записи происходит так: select таблица, затем append blank. Есть кнопки сохранить и отмена. Соответствено TableUpDate и TableRevert. К тому же данная проблема возникает при добавлении именно первой записи в таблице. Дальше все работает нормально. попробуй thisform.Refresh() после append blank поставить. возможно после добавления код отрабатывает, который указатель на конец таблицы ставит - SCAN, SUM, COUNT. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2008, 17:44 |
|
||
|
Добавление записи в таблицу
|
|||
|---|---|---|---|
|
#18+
Давай сюда две маленькие формочки с одним контролом каждый и тестовую табличку привязываемую к конролу, на которых будет видно твою проблему - тебе создать тест 20 минут, а так гадать будем еще долго. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2008, 18:35 |
|
||
|
Добавление записи в таблицу
|
|||
|---|---|---|---|
|
#18+
Даже одну форму с инициализацией как будто форму вызвали для добавления записи. Будем посмотреть. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2008, 18:36 |
|
||
|
Добавление записи в таблицу
|
|||
|---|---|---|---|
|
#18+
У вас типичное поведение, когда таблица на BOF/EOF. Я сам не нашел приемемлого ворианта решения и делел так if (eof() or bof()) and recco()>0 go recco() endif ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2008, 20:12 |
|
||
|
Добавление записи в таблицу
|
|||
|---|---|---|---|
|
#18+
"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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2008, 07:04 |
|
||
|
Добавление записи в таблицу
|
|||
|---|---|---|---|
|
#18+
Вот примерно то, что я сотворил ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2008, 08:28 |
|
||
|
Добавление записи в таблицу
|
|||
|---|---|---|---|
|
#18+
Да, прошу прощения, второпях забыл привязать контролы во второй форме к полям таблицы, привязано только поле family ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2008, 08:33 |
|
||
|
Добавление записи в таблицу
|
|||
|---|---|---|---|
|
#18+
Ну вот теперь все понятно - код на кнопке добавить: Код: plaintext 1. 2. 3. Что Вы собрались редактировать не добавив ни одной записи в таблицу? Правильный порядок работы, вне зависимости работаете вы с буферизацией или нет: Добавили новую запись - APPEND BLANK, внесли в нее значения (без разницы ручками или через REPLACE), сбросили обновления из буфера в таблицу - TableUpdate() (если таблица не буферезирована то последний пункт лишний) Поэтому код кнопкт должен быть: Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2008, 10:07 |
|
||
|
Добавление записи в таблицу
|
|||
|---|---|---|---|
|
#18+
Спасибо! Когда все объяснили, действительно просто... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2008, 10:28 |
|
||
|
Добавление записи в таблицу
|
|||
|---|---|---|---|
|
#18+
> Спасибо! Когда все объяснили, действительно просто... :-) А это тебе слишком сложно было: При этом при добавлении новой записи надо делать append blank, чтобы сначала добавить пустую строку, а потом уже ее редактировать. ????? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2008, 12:12 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=35124468&tid=1588173]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
68ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 232ms |
| total: | 386ms |

| 0 / 0 |
