![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ввязался...
vasIZmax © (2007-02-21 22:44:00)Подскажите, плиз, как оформить код. Смысл такой: есть БД
первое поле - номер_операции,
второе - дата,
третье - описание, и т.д.
Никак не могу организовать чтобы когда юзер нажимает Append, номер сразу автоматом увеличивался на единицу.
Первый день сегодня с БД работаю, поэтому из того что накопал понял что код приблизительно должен быть такой(имхо):
if form1.DBNavigator1.BtnClick(nbinsert)=нажато then
form1.Table1.IndexFields[0].Text:=inttostr(form1.Table1.RecordCount+1);
Подскажите...)), как это сделать?...
vasIZmax (2007-02-22 14:01:00) [1]
> Megabyte © (22.02.07 10:06) [10]
ага, Парадокс юзал.
Но почему-то не хочет создаваться Access (в общем Alias is not type of MSACCESS). И видно, че-то отключил(?) че в BDEAdmin-е никуда не впускает - повсюду ерроры(((
Итого: спасибо всем кто подсказал в решении проблемы))))))))
ЗЫ. Читаю Сорокина "Delphi разработка БД". или может есть получше?
Megabyte (2007-02-22 10:06:00) [2]Я так понимаю, у тебя БД Парадокс.
тип поля + это и есть тип поля Автоинкрементный, т.е. автоматически увеличивается на 1 при вводе данных.
Совет: как можно скорее перелезай на другую БД, например Access(Парадокс слишком старый), как только хоть немного вникнешь в азы БД.
RASkov (2007-02-22 10:01:00) [3]> но пишет, что БД занята. В чем причина?
Delphi такой же "пользователь"(в контексте БД) как и ты, и компоненты, такие как TTable, физически открывают таблицы БД(свойство Active=True, при правильно выставленных других свойст) даже в дизайнтайме. А для работы Database Desktop с таблицами необходим монопольный режим.
ЮЮ (2007-02-22 04:19:00) [4]
> т.е. открыт код в дельфе, но не запущен(!)),
Потому что используешь TTable, которые у тебя открыты и в Disign-е
> код в дельфе, но не запущен
Откуда же тогда в гриде данные видны. Код в дельфе уже "запущен". Не запущен - если в блокноие :)
vasIZmax (2007-02-21 23:53:00) [5]
> RASkov (21.02.07 23:36) [6]
Я сделал иначе (а может и тоже самое))). Вообщем открыл Database Desktop. Открыл(restructure) нужную БД, и в type поставил "+", а потом в secondary index->define добавил и переместил number (первое поле). Потом добавил еще nom (ну попросило добавить я и добавил))))). В index options отметил галкой unique. сохранил и заработало))))))).
Но это чисто на интутивном уровне сделал без понимания процесса (теперь основательно буду БД учить))))).
И такой вот вопросик если проект в котором я использую (т.е. открыт код в дельфе, но не запущен(!)), почему то пытаюсь открыть БД через Database Desktop, но пишет, что БД занята. В чем причина? Или просто тривиальное решение такой проблемы: закрыть проект в дельфе не помогает?
ЗЫ. это последний вопрос))))... и буду учить..., что бы не постить простых задач))))))
RASkov (2007-02-21 23:36:00) [6]> [5] vasIZmax © (21.02.07 23:22)
Какая БД? Сделай поле "первое поле - номер_операции," AutoIncrement...
vasIZmax (2007-02-21 23:22:00) [7]
> Petr V. Abramov © (21.02.07 23:14) [4]
я ж говорю что БД занимаюсь только... э-э-э... 5 часов...)))(ну, не работал я раньше с БД, поэтому и туплю(((()... и работа рассчита не для многоюзерской работы, а для одного юзера...
для номера я поставил "обязательный ввод", если не введет номер, то ошибка появляется.
Я читал, что ошибки перехватывать и пр., ну а нафик это надо, если можно автоматом оформить ввод номера. можно ли?
Petr V. Abramov (2007-02-21 23:14:00) [8]а если юзер нажмет "не хочу дальше вводить"? что будет с номером? при многоюзерской работе-то?
никто еще не помер от того, что номер присваиватеся при сохранении.
vasIZmax (2007-02-21 23:09:00) [9]
> Zeqfreed © (21.02.07 22:59) [2]
этот код почему-то не работает (у меня). Просто задча такая: чтобы юзер не в таблице вводил данные, а при помощи компоненнтов, т.е.
перевожу на русский:
для того чтобы во второе поле вставлял дату я такой код использовал:
form1.Table1.Fields[1].Text:=datetostr(form1.DateTimePicker1.DateTime);
а теперь мне надо, чтобы когда юзер нажимал на навигаторе "добавить", то автоматом в таблице вводился следующий номер. вот.
ЗЫ. если надо еще раз объянить, я подробнее опишу)))
Zeqfreed (2007-02-21 22:59:00) [10]
update table set field = field + 1;?
Johnmen (2007-02-21 22:54:00) [11]А как ты думаешь, студенты в первый же день, как увидели скальпель, тело режут?
> как это сделать?...
Или тебе букварь сюда скопи-пастить?