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

Вниз

Реструктуризация базы Access 2000   Найти похожие ветки 

 
TechnoDreamer   (2004-10-19 01:30) [0]

В базе есть поле типа "счетчик", при удалении записей, в этом поле появляется много пропусков, если какие то относительно, несложные способы, реструктуриазции такой базы? Т.е. надо вместо номеров: 1,18,19,20... сделать номера 1,2,3,4...
Работаю через ADO.


 
sniknik ©   (2004-10-19 08:35) [1]

ALTER TABLE xxx DROP COLUMN ID

ALTER TABLE xxx ADD COLUMN ID Autoincrement
если индека на нем нет то пересоздание автоматом установит новую нумеровку.

либо копированием в таблицу с аналогичной структурой не указывая поле счетчика
INSERT INTO xxx SELECT NotIDFields FROM xxx
после старую таблицу удаляеш новую переименовываеш (код переименования, правда на бейсике, но перевести несложно совсем, надеюсь ;о)))

Sub RenameTable (conStr, oldName, newName)
 "Должно быть соединение OLE DB
 "Создадим объект и подсоединимся к БД...
 Dim objADOXDatabase
 Set objADOXDatabase = Server.CreateObject("ADOX.Catalog")
 objADOXDatabase.ActiveConnection = conStr

 "Изменим имя...
 objADOXDatabase.Tables(oldName).Name = newName
 
 "Очистка...
 Set objADOXDatabase = Nothing
End Sub


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


 
Ильш   (2004-10-19 08:42) [2]

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


 
sniknik ©   (2004-10-19 08:54) [3]

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


 
Ильш   (2004-10-19 09:03) [4]

согласен...
но вот смысла в этом вот
> 1,18,19,20... сделать номера 1,2,3,4...
совсем не вижу
по любому порядок будет...


 
Shuma ©   (2004-10-19 12:40) [5]

поле типа "счетчик" - это длинное целое посчитай сколько записей надо сделать чтобы получилось переполнение! Тебе этого поля на всю жизнь хватит.


 
TechnoDreamer   (2004-10-20 01:15) [6]

Поле не с чем не связано, так что связи не нарушаться.
Смысл есть, так как это поле выводится юзеру, и ему не понятно будет почему в его базе с 20 записями, 3-4 значные номера, которые всё время растут, оно конечно не жизненно важно, но не красиво. К тому же по этому поле происходит поиск.


 
Vemer ©   (2004-10-20 01:28) [7]

Для номера используй вычисляемое поле через ДатаСет.Rec_No.


 
TechnoDreamer   (2004-10-20 22:09) [8]

2Vemer:
Спасибо, хорошая идея.


 
Ильш   (2004-10-25 13:59) [9]

идея просто супер!
она появляется если немного подумать !



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

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

Наверх




Память: 0.49 MB
Время: 0.032 c
1-1099886622
Кто---то
2004-11-08 07:03
2004.11.21
Существует ли функция обратная Format ? Чтобы вытаскивала по


3-1098264700
GALIM
2004-10-20 13:31
2004.11.21
Как добавить записи в dbf-таблицу запросом Insert через ADO


14-1099312241
Dmitriy O.
2004-11-01 15:30
2004.11.21
270 мб кода. за 2 года !


3-1098806092
GigoVich
2004-10-26 19:54
2004.11.21
TDBGrid + TQuery + FireBird (embeded)


3-1098071702
ILUHA
2004-10-18 07:55
2004.11.21
Вопрос по IBTransaction