link4402 link4403 link4404 link4405 link4406 link4407 link4408 link4409 link4410 link4411 link4412 link4413 link4414 link4415 link4416 link4417 link4418 link4419 link4420 link4421 link4422 link4423 link4424 link4425 link4426 link4427 link4428 link4429 link4430 link4431 link4432 link4433 link4434 link4435 link4436 link4437 link4438 link4439 link4440 link4441 link4442 link4443 link4444 link4445 link4446 link4447 link4448 link4449 link4450 link4451 link4452 link4453 link4454 link4455 link4456 link4457 link4458 link4459 link4460 link4461 link4462 link4463 link4464 link4465 link4466 link4467 link4468 link4469 link4470 link4471 link4472 link4473 link4474 link4475 link4476 link4477 link4478 link4479 link4480 link4481 link4482 link4483 link4484 link4485 link4486 link4487 link4488 link4489 link4490 link4491 link4492 link4493 link4494 link4495 link4496 link4497 link4498 link4499 link4500 link4501 link4502 link4503 link4504 link4505 link4506 link4507 link4508 link4509 link4510 link4511 link4512 link4513 link4514 link4515 link4516 link4517 link4518 link4519 link4520 link4521 link4522 link4523 link4524 link4525 link4526 link4527 link4528 link4529 link4530 link4531 link4532 link4533 link4534 link4535 link4536 link4537 link4538 link4539 link4540 link4541 link4542 link4543
C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Тип Autoincrement, как с ним работать?
Лена
Отправлено: 25.02.2006, 22:45


Мастер участка

Группа: Участник
Сообщений: 501



Подскажите, как сделать, чтобы в первой колонке цифры всегда шли строго по возрастающий на единицу 1,2,3,4, и т.д. Эта колонка имеет правильный тип Autoincrement, однако если удалять, а затем добавлять записи, то это колонка запоминает номера бывших записей и уже не удается добавить строки с ранее существовавшими номерами. Как сделать чтобы всегда цифры в этой колонки шли по порядку, без пропусков (см.рисунок). На рисунке стараюсь вставить запись, чтобы у нее был номер 4, однако вставляется в конец за последний номер. Получается номера строк с 4 до 8 (ранее удаленные) уже не вернуть?



Присоединить изображение

Присоединить изображение

Gedeon
Отправлено: 26.02.2006, 00:54


Ветеран

Группа: Модератор
Сообщений: 1742



Прийдется только мудрить руками, но для этого надо знать БД, а вообще советую отказаться от этой идеи, обсуждалось уже где-то здесь.
Valdemar
Отправлено: 26.02.2006, 10:32


Мастер участка

Группа: Участник
Сообщений: 433



Когда мне надо чтобы одна колонка DBGrid содержала номера по-поряду без пропусков я использую метод OnDrawColumnCell и рисую номера сам. А автоинкрементное поле вообще не показываю.
Лена
Отправлено: 26.02.2006, 10:37


Мастер участка

Группа: Участник
Сообщений: 501



Cпасибо, понятно.
Вот еще пару вопросов. Для удаления записей пользуюсь стандартным навигатором баз данных с вкладки DataControls. При нажатии удаления строки (кнопка "минус" навигатора), сначала появляется окно с англоязычной надписью просящей подтверждения удаления. Как обработать это событие, чтобы вставить свой ShowMessage (уже на русском)?
2. Можно ли у навигатора, над каждой кнопкой сделать всплывающее подсказки о назначении его кнопок и можно ли как-то поменять цвет кнопок навигатора?
3. При вставлении значения в поле с типом currency автоматически добавляется денежная единица (например, 46,23р.). Как убрать "р" или как, например, заменить на "$". Надо как-то правильно написать маску…
4. Если пользователь вставляет в поле не тот тип, который там требуется, например в currency вставляет что-то типа 26.05.2006, то возникает исключение при нажатии на Enter. Как обработать правильно такое исключение, выдав свой ShowMessage?
Вопросов получилось много. smile.gif

olegenty
Отправлено: 27.02.2006, 07:31


Ветеран

Группа: Модератор
Сообщений: 2412



поскольку пользуюсь TMemTableEh — проблем со сквозной нумерацией записей не имею вообще: создаю вычисляемое поле, например mtRecNo, и в OnCalcFields пишу
CODE

mtRecNo->AsInteger = mt->RecNo;

и всё, наступает счастье.

2. У навигатора есть св-во Hints
4. OnValidate поля

Отредактировано olegenty — 27/02/2006, 10:24
Kuks
Отправлено: 27.02.2006, 09:15


Станционный диспетчер

Группа: Участник
Сообщений: 108



У меня реализовано такое, BCB6 — ADO — SQL2000...
Ссылку на статью нашел на sql.ru...
Реализовано со стороны сервера на UDF и двух триггерах,
работает без проблем... именно так как Вам надо  — без пропусков...
My Webpage
Лена
Отправлено: 27.02.2006, 12:09


Мастер участка

Группа: Участник
Сообщений: 501



Всем спасибо за ответы, буду разбираться. smile.gif

Вернуться в Работа с базами данных в C++Builder