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

Вниз

AutoInc   Найти похожие ветки 

 
Maza   (2003-08-29 16:08) [0]

Народ!!!
Можно ли реализовать в АвтоИнк такую фишку:
1 напр. есть 5 строк в DBGrid, столбец "№" содержит нумерацию данных строк (от 1 до 5).
2 потом удаляется строка №2, 3, т.е. "№" содержит 1, 4, 5, а как сделать 1, 2, 3?

P.S. В принципе, мона и без АвтоИнк


 
Stas   (2003-08-29 16:14) [1]

Можно сделать перенумерацию строк в цикле.

Только это будет долго.


 
Vlad   (2003-08-29 16:21) [2]

Без извращений не получится.
Вопрос - а для чего это надо ?
Может тебе кто нибудь по умней что-то посоветует ?


 
GRAND   (2003-08-29 16:22) [3]

2 Maza (29.08.03 16:08):

А зачем? Ведь на клиенте Table1.RecNo всегда тебе вернет порядковый номер записи. А если надо в гриде, например, показывать номер КАЖДОЙ записи, то создай вычисляемое поле и в OnCalcField пропиши Table1MYAUTOINC.AsInteger:=Table1.RecNo
И все дела...


 
Dred2k   (2003-08-29 16:47) [4]

> Stas © (29.08.03 16:14) [1]

С AutoInc такого не сделаешь.
Нужно будет создать новую таблицу.
А вообще, я этот тип данных не советую использовать - глючит, зараза. Порой выдает key violation при вставке, таблица слетает.


 
MsGuns   (2003-08-29 16:59) [5]

Событие OnGetText поля НД, на которое ссылается колонка грида, предназначенная для №. При этом само поле не отображается, а вместо него будет:

Text := Format("%6d",[RecNo]);

Format - чтоб выровнить на правую границу


 
Langolier   (2003-08-29 22:05) [6]

2Maza
Используй RecNo... Только используй в перерисовке DBGrid"а:

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
with DBGrid1.Canvas do
begin
if Column.Index = 0 then
begin
FillRect(Rect);
TextOut(Rect.Left, Rect.Top, ADOTable1.RecNo);
end
else
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
end;


В DBGrid"е не забудь добавить пустой столбец и перетащи его в начало: Column.Index = 0...
P.S. Посмотри как это работает и при переиндексации таблицы, и при удалении промежуточных записей... ;-) Удачи...


 
Anatoly Podgoretsky   (2003-08-30 00:25) [7]

Не стоит надеяться на RecNo, это хоть и логический тип для Парадокса, но совсем не работает для фильтров. Физических как в dBase нет.


 
Langolier   (2003-08-30 01:00) [8]

Данный код служит ТОЛЬКО для нумерации строк при визуализации (во какое словцо-то..) таблицы в DBGrid"е... И RecNo по барабану отфильтрована это таблица или проиндексирована... Я такую конструкцию применил для Detail таблицы, причем ее можно индексировать по любому полю, нумерация эта будет все равно 1, 2, 3, и т.д. (DB MS Access) ;-)


 
Anatoly Podgoretsky   (2003-08-30 01:09) [9]

Так не про Акцесс же спрашивают, а про Парадокс, вот попробуй поставить фильтр и посмотри, будет ли последовательная нумерация или нет.


 
Langolier   (2003-08-30 01:19) [10]

Попробую... :-)


 
Langolier   (2003-08-31 23:23) [11]

Маленкое исправление к вышесказанному...

TextOut(Rect.Left, Rect.Top, IntToStr(ADOTable1.RecNo));

С Парадоксом эта структура тож работает, но маленькое уточнение: при фильтрации DBE видит отфильтрованные записи и в итоге выдает номера типа: 2, 3, 6, 7, и т.д. При связи Master-Detail и при Сортировки все проходит отлично...
При использовании ADO даже при фильтрациии итог : 1, 2, 3, и т.д.
ЗЫ Повторюсь, данный алгоритм (см. выше) только для визуализации... :-)



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

Форум: "Базы";
Текущий архив: 2003.09.22;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.19 c
1-71622
Pavel Oliynik
2003-09-09 11:35
2003.09.22
как закодировать и разкодировать стандарными фукнциями строку


1-71723
Вован
2003-09-11 15:36
2003.09.22
Как на WinAPI перетаскивать окно за любое место?


1-71732
Unknown
2003-09-10 11:29
2003.09.22
Возможно ли в теле метода узнать его имя ?


14-71896
DiamondShark
2003-09-04 17:53
2003.09.22
The Assignment


14-71835
k-man
2003-09-01 18:59
2003.09.22
Железный трабл 2





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский