Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Anatoliy
Зарегистрирован: 15.04.2002 Сообщения: 681 Откуда: Moscow
|
Добавлено: Пт Мар 29 2002 11:29 Заголовок сообщения: как получить номер ...... |
|
|
как получить номер последний записи?, для того чтоб, к нему прибавить +1 и полученное число вставить в поле при соддании новой записи. (хочу чтоб, в таблице dbf сроки имели порядковую нумерацию. КАК ето реализов... Плиз) |
|
Вернуться к началу |
|
|
Daniel
Зарегистрирован: 29.03.2002 Сообщения: 3 Откуда: Екатеринбург
|
Добавлено: Пт Мар 29 2002 12:03 Заголовок сообщения: Re: как получить номер ...... |
|
|
Я уже с таким сталкивался, тут такая вещь существует, а вдруг пользователь захочет удалить среднюю строку???? ее идентификатор уже теряется, а в других таблицах возможно он используется, поэтому надо сначала подумать над сохранением целостности бд.... а я делал так : Пробегался по таблице (заранее было известно что она будет небольшая), находил максимальный идентификатор, к нему прибавлял еденицу и создавал новую запись |
|
Вернуться к началу |
|
|
Anatoliy
Зарегистрирован: 15.04.2002 Сообщения: 681 Откуда: Moscow
|
Добавлено: Пт Мар 29 2002 13:36 Заголовок сообщения: Re: как получить номер ...... |
|
|
если не трудно, кинь пожалуйста отрывок кода. Моя таблица без связей и примерно строк будет до 1000(через год). Честно, я пытался так сделать, но чет пока не выходит. Еще раз спасибо. |
|
Вернуться к началу |
|
|
Daniel
Зарегистрирован: 29.03.2002 Сообщения: 3 Откуда: Екатеринбург
|
Добавлено: Пт Мар 29 2002 15:55 Заголовок сообщения: Re: как получить номер ...... |
|
|
Table.first; idpostav:=0; for i:=0 to table.RecordCount-1 do Begin val:=Table.FieldByName'id_postav').asInteger; if val>idpostav then idpostav:=val; Table.Next; End; inc(idpostav); Обычный алгоритм нахождения максимального числа в массиве.... но вообще то алгоритм наверное доработать можно было бы.... не хотелось думать |
|
Вернуться к началу |
|
|
Anatoliy
Зарегистрирован: 15.04.2002 Сообщения: 681 Откуда: Moscow
|
Добавлено: Пт Мар 29 2002 22:01 Заголовок сообщения: Re: как получить номер ...... |
|
|
Честно говоря я не понял. это на дельфи я перевел как смог.
Table1->First(); idpostav = 0; for (int i=0;Table1->RecordCount;-1) { val=Table->FieldByName'nume').asInteger; if val>idpostav then idpostav=val; Table1->Next; } inc(idpostav); что такое: - idpostav - inc(idpostav); - val |
|
Вернуться к началу |
|
|
Daniel
Зарегистрирован: 29.03.2002 Сообщения: 3 Откуда: Екатеринбург
|
Добавлено: Сб Мар 30 2002 05:36 Заголовок сообщения: Re: как получить номер ...... |
|
|
Пиши на мыло hole666@mail.ru |
|
Вернуться к началу |
|
|
Mike
Зарегистрирован: 17.11.2001 Сообщения: 339 Откуда: ekb
|
Добавлено: Вс Мар 31 2002 16:06 Заголовок сообщения: Re: как получить номер ...... |
|
|
Вобще-то такие вещи лучше писать на SQL, быстрее будет работать, текст запроса: SELECT max(ИмяПоля) from ИмяТаблицы
потом просто берешь значение из единственного поля в компоненте TQuery или лучше TADOQuery |
|
Вернуться к началу |
|
|
Anatoliy
Зарегистрирован: 15.04.2002 Сообщения: 681 Откуда: Moscow
|
Добавлено: Пн Апр 01 2002 11:36 Заголовок сообщения: Re: как получить номер ...... |
|
|
Так я работаю с отдельной таблицой? через ADO компоненты, все равно можно пользоваться запросами языка SQL? (только через ADO Query) |
|
Вернуться к началу |
|
|
Mike
Зарегистрирован: 17.11.2001 Сообщения: 339 Откуда: ekb
|
Добавлено: Пн Апр 01 2002 12:06 Заголовок сообщения: Re: как получить номер ...... |
|
|
Через АДО все делается |
|
Вернуться к началу |
|
|
Anatoliy
Зарегистрирован: 15.04.2002 Сообщения: 681 Откуда: Moscow
|
Добавлено: Пн Апр 01 2002 12:18 Заголовок сообщения: Re: как получить номер ...... |
|
|
попробую! |
|
Вернуться к началу |
|
|
ALL Гость
|
Добавлено: Ср Апр 03 2002 14:07 Заголовок сообщения: Re: как получить номер ...... |
|
|
создал отдельную таблицу (счетик) и отдуда беру. |
|
Вернуться к началу |
|
|
|