Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.03.18;
Скачать: CL | DM;

Вниз

Ввязался...   Найти похожие ветки 

 
vasIZmax ©   (2007-02-21 22:44) [0]

Подскажите, плиз, как оформить код. Смысл такой: есть БД
первое поле -  номер_операции,
второе - дата,
третье - описание, и т.д.
Никак не могу организовать чтобы когда юзер нажимает Append, номер сразу автоматом увеличивался на единицу.

Первый день сегодня с БД работаю, поэтому из того что накопал понял что код приблизительно должен быть такой(имхо):
if form1.DBNavigator1.BtnClick(nbinsert)=нажато then
form1.Table1.IndexFields[0].Text:=inttostr(form1.Table1.RecordCount+1);


Подскажите...)), как это сделать?...


 
Johnmen ©   (2007-02-21 22:54) [1]

А как ты думаешь, студенты в первый же день, как увидели скальпель, тело режут?

>  как это сделать?...

Или тебе букварь сюда скопи-пастить?


 
Zeqfreed ©   (2007-02-21 22:59) [2]

update table set field = field + 1; ?


 
vasIZmax ©   (2007-02-21 23:09) [3]


> Zeqfreed ©   (21.02.07 22:59) [2]

этот код почему-то не работает (у меня). Просто задча такая: чтобы юзер не в таблице вводил данные, а при помощи компоненнтов, т.е.
перевожу на русский:

для того чтобы во второе поле вставлял дату я такой код использовал:
form1.Table1.Fields[1].Text:=datetostr(form1.DateTimePicker1.DateTime);

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

ЗЫ. если надо еще раз объянить, я подробнее опишу)))


 
Petr V. Abramov ©   (2007-02-21 23:14) [4]

а если юзер нажмет "не хочу дальше вводить"? что будет с номером? при многоюзерской работе-то?
никто еще не помер от того, что номер присваиватеся при сохранении.


 
vasIZmax ©   (2007-02-21 23:22) [5]


> Petr V. Abramov ©   (21.02.07 23:14) [4]

я ж говорю что БД занимаюсь только... э-э-э... 5 часов...)))(ну, не работал я раньше с БД, поэтому и туплю(((()... и работа рассчита не для многоюзерской работы, а для одного юзера...

для номера я поставил "обязательный ввод", если не введет номер, то ошибка появляется.

Я читал, что ошибки перехватывать и пр., ну а нафик это надо, если можно автоматом оформить ввод номера. можно ли?


 
RASkov   (2007-02-21 23:36) [6]

> [5] vasIZmax ©   (21.02.07 23:22)

Какая БД? Сделай поле "первое поле -  номер_операции," AutoIncrement...


 
vasIZmax ©   (2007-02-21 23:53) [7]


> RASkov   (21.02.07 23:36) [6]

Я сделал иначе (а может и тоже самое))). Вообщем открыл Database Desktop. Открыл(restructure) нужную БД, и в type поставил "+", а потом в secondary index->define добавил и переместил number (первое поле). Потом добавил еще nom (ну попросило добавить я и добавил))))). В index options отметил галкой unique. сохранил и заработало))))))).

Но это чисто на интутивном уровне сделал без понимания процесса (теперь основательно буду БД учить))))).

И такой вот вопросик если проект в котором я использую (т.е. открыт код в дельфе, но не запущен(!)), почему то пытаюсь открыть БД через Database Desktop, но пишет, что БД занята. В чем причина? Или просто тривиальное решение такой проблемы: закрыть проект в дельфе не помогает?

ЗЫ. это последний вопрос))))... и буду учить..., что бы не постить простых задач))))))


 
ЮЮ ©   (2007-02-22 04:19) [8]


> т.е. открыт код в дельфе, но не запущен(!)),

Потому что используешь TTable, которые у тебя открыты и в Disign-е


> код в дельфе, но не запущен

Откуда же тогда в гриде данные видны. Код в дельфе уже "запущен". Не запущен - если в блокноие :)


 
RASkov   (2007-02-22 10:01) [9]

> но пишет, что БД занята. В чем причина?

Delphi такой же "пользователь"(в контексте БД) как и ты, и компоненты, такие как TTable, физически открывают таблицы БД(свойство Active=True, при правильно выставленных других свойст) даже в дизайнтайме. А для работы Database Desktop с таблицами необходим монопольный режим.


 
Megabyte ©   (2007-02-22 10:06) [10]

Я так понимаю, у тебя БД Парадокс.
тип поля + это и есть тип поля Автоинкрементный, т.е. автоматически увеличивается на 1 при вводе данных.

Совет: как можно скорее перелезай на другую БД, например Access(Парадокс слишком старый), как только хоть немного вникнешь в азы БД.


 
vasIZmax ©   (2007-02-22 14:01) [11]


> Megabyte ©   (22.02.07 10:06) [10]

ага, Парадокс юзал.

Но почему-то не хочет создаваться Access (в общем Alias is not type of MSACCESS). И видно, че-то отключил(?) че в BDEAdmin-е никуда не впускает - повсюду ерроры(((

Итого: спасибо всем кто подсказал в решении проблемы))))))))

ЗЫ. Читаю Сорокина "Delphi разработка БД". или может есть получше?



Страницы: 1 вся ветка

Текущий архив: 2007.03.18;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.043 c
2-1172584874
Flood_control
2007-02-27 17:01
2007.03.18
OpenDialog и MediaPlayer


2-1172575174
trubin
2007-02-27 14:19
2007.03.18
PasswordChar не работает


2-1172213855
jappak
2007-02-23 09:57
2007.03.18
ТЕКСТОВЫЙ ФОРМАТ


15-1171729161
ProgRAMmer Dimonych
2007-02-17 19:19
2007.03.18
Подскажите новичку


15-1172240850
Steep
2007-02-23 17:27
2007.03.18
dll