Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Foxpro/Clipper/Dbase > Как добавить запись в таблицу через форму


Автор: profispb 2.2.2006, 17:32
Проблема заключается в следующем:
Не могу добавить запись в таблицу, т. е. она добавляется но с ошибкой и + к этому заменяет первую запись.
Добавляю командой Append Blank
Как избавится от такой проблемы?
И второе как сделать чтобы на форме показалась следующая запись? smile

Автор: Cashey 2.2.2006, 21:58
Цитата(profispb @ 2.2.2006, 17:32 Найти цитируемый пост)

Не могу добавить запись в таблицу, т. е. она добавляется но с ошибкой и + к этому заменяет первую запись.

Какая ошибка?
Цитата(profispb @ 2.2.2006, 17:32 Найти цитируемый пост)

Добавляю командой Append Blank

Append Blank добавляет пустую запись, если в таблице есть поле с уникальным ключом, то будет ошибка
Цитата(profispb @ 2.2.2006, 17:32 Найти цитируемый пост)

И второе как сделать чтобы на форме показалась следующая запись?

Содержимое таблицы отображается не на форме, а в элементах отображения, например гриде. Хотя, можно конечно, командой BROWSE IN SCREEN

Автор: profispb 3.2.2006, 16:05
Запись я отображаю в полях TextBox.
У в таблице уже есть информация, как сделать чтобы добавить после последней записи в таблице новую?

Автор: Cashey 3.2.2006, 22:48
Цитата(profispb @ 3.2.2006, 16:05 Найти цитируемый пост)

У в таблице уже есть информация, как сделать чтобы добавить после последней записи в таблице новую?

например, сделать на форме кнопку и прописать в ней:
Код

APPEND BLANK
REPLACE cValue WITH 1 + 100 * RAND( ) IN alias

Если в таблице есть уникальный индекс, то либо используй поле автонумерации (для VFP 8.0 и старше) или напиши присвоение уникального значения в триггере, либо используй команду
Код

GO TOP IN alias
INSERT INTO alias (cValue) VALUE (guid)



Автор: profispb 3.2.2006, 23:58
Cashey При работе первого кода выдается ошибка типа Uniqueness of index KLIENT_ID is violated и Alias 'ALIAS' is not found.
Со вторым кодом такая же фи..я.
Помогите очень надо!.

Автор: Cashey 4.2.2006, 00:51
Цитата(profispb @ 3.2.2006, 23:58 Найти цитируемый пост)

Cashey При работе первого кода выдается ошибка типа Uniqueness of index KLIENT_ID is violated и Alias 'ALIAS' is not found.
Со вторым кодом такая же фи..я.

у тебя на поле KLIENT_ID установлен primary index. либо замени его на regular, либо создай алгоритм присвоения оригинального значения и пропиши его в триггере, либо сделай значение поля autoinc

Автор: profispb 4.2.2006, 17:53
Cashey Мне по заданию надо обязательно чтобы на поле KLIENT_ID был установлен primary index.

Автор: Cashey 4.2.2006, 19:37
profispb у тебя есть процедура присвоения уникального значения? Если нет, то пиши так:
Код

CALCULATE MAX(KLIENT_ID+1) to m.id IN (ALIAS)
INSERT INTO (ALIAS) (KLIENT_ID) VALUES (m.id)

А еще лучше, если умеешь писать триггера, помести это все в триггер.
Только не используй в качестве названия таблицы слово "ALIAS", я его здесь использую только для того, что бы показать, что в этом месте должно стоять название твоей таблицы

Автор: profispb 4.2.2006, 23:44
Cashey Че за фи..ня вылетает с ошибкой Uniqueness of index KLIENT_ID is violated.
И еще есть клавиша вперед и назад как сделать перемещение по записям, а то у нас преподы сами незнают, они сами по книге вместе с нами изучают.

Автор: Cashey 5.2.2006, 15:10
profispb какой у тебя тип поля KLIENT_ID?

Автор: profispb 5.2.2006, 20:21
Тип поля KLIENT_ID это Numeric.

Автор: karina 6.2.2006, 11:32
попробуй сделать проект а в него добавить свою форму
и посмотри в проекте как формируются классы
Код

 :inlove 
baykanik@yandex.ru

Автор: profispb 6.2.2006, 19:30
karina Не понял, а по яснее можно?

Автор: Cashey 7.2.2006, 21:47
Цитата(profispb @ 5.2.2006, 20:21 Найти цитируемый пост)

Тип поля KLIENT_ID это Numeric.

если фокс 8-й и выше, измени его на тип автонумерации. а вообще должно работатьвидимо у тебя еще есть где-то хвост
Добавлено @ 22:01
ах, да вот еще что. primary index видит также записи, помеченные на удаление. так что упакуй таблицу предварительно

Автор: profispb 8.2.2006, 16:49
Cashey Спасибо час, разберусь.

Автор: profispb 9.2.2006, 20:36
Спасибо всем кто мне помог. Но я нашёл свои ошибки, и исправил их добавление новой записи осуществляется с помощь команды Append Blank.

Автор: Cashey 10.2.2006, 21:19
Цитата(profispb @ 9.2.2006, 20:36 Найти цитируемый пост)

Но я нашёл свои ошибки, и исправил их добавление новой записи осуществляется с помощь команды Append Blank.

ты же в первом посте писал, что ошибка возникает именно при использовании этой команды

Автор: profispb 10.2.2006, 23:15
Cashey Я нашёл ошибку когда подключал таблицу у меню образовывалась какае - то виртуальная таблица с темеже полями, и поля с формы ссылались на неё исправлением было удаление вирт. таблицы и установи параметров textbox, причем у всех в группе была одна и таже ошибка. Вот так то.

Автор: MFoxer 12.2.2006, 22:54
С таким подходом, максимум за задание тебе 3 с минусом.


Автор: profispb 12.2.2006, 23:04
ПЯть балов поставили!

Автор: Cashey 15.2.2006, 21:54
Цитата(profispb @ 10.2.2006, 23:15 Найти цитируемый пост)
Я нашёл ошибку когда подключал таблицу у меню образовывалась какае - то виртуальная таблица с темеже полями, и поля с формы ссылались на неё

это как так надо было подключать таблицу?!

Автор: profispb 15.2.2006, 22:34
Cashey, Без понятия как то само.

Автор: Artas 4.4.2006, 02:07
profispb,
А каким образом ты удалил виртуальные таблицы.Я в этом деле тож начинающий если можно опиши поподробней шо сделал чтоб заработало

Автор: Cashey 7.4.2006, 09:12
Цитата(Artas @ 4.4.2006, 02:07 Найти цитируемый пост)
profispb,
А каким образом ты удалил виртуальные таблицы.Я в этом деле тож начинающий если можно опиши поподробней шо сделал чтоб заработало

я думаю он их просто закрыл коммандой USE. а посмотреть список всех открытых алиасов можно запустив программу из под Фокса

Автор: nezabor 17.4.2008, 01:04
Люди извините за такой топик, но я уже умираю, вот захотел научиться програмировать в VFP а програмировать вообще не умею с чего начать хелп помаленьку даётся но не так чтобы живенько

Автор: Данкинг 17.4.2008, 01:34
Цитата(nezabor @ 17.4.2008,  02:04)
Люди извините за такой топик, но я уже умираю, вот захотел научиться програмировать в VFP а програмировать вообще не умею с чего начать хелп помаленьку даётся но не так чтобы живенько

Начать лучше с VB. smile А потом и фокс освоить будет легче.

Автор: nezabor 17.4.2008, 01:37
спасибо, а вот насчет самой оболчки где лучше спросить или у тебя ссылочка есть

Автор: Данкинг 17.4.2008, 20:34
Цитата(nezabor @ 17.4.2008,  02:37)
спасибо, а вот насчет самой оболчки где лучше спросить или у тебя ссылочка есть

Какой оболочки? Купи диск с фоксом (последний - 9.0, насколько я знаю) и наслаждайся. smile 

Автор: nezabor 18.4.2008, 02:00
не фокс есть я иска VB и нашел всё там работает
пока с него начну

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