Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.03.18;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.046 c
1-1169493165
raqy.style
2007-01-22 22:12
2007.03.18
Отрисовка списков.


15-1171999999
Dose
2007-02-20 22:33
2007.03.18
SICP


2-1172274829
koha
2007-02-24 02:53
2007.03.18
Клик мышью в TListView


2-1172150387
Lonix
2007-02-22 16:19
2007.03.18
Помощь с сеткой на форме


2-1172161175
koha
2007-02-22 19:19
2007.03.18
два способа чтение из памяти





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский