Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 08.05.2006, 20:18
bliss bliss вне форума
Прохожий
 
Регистрация: 06.05.2006
Сообщения: 9
Репутация: 10
По умолчанию нумерация строк в таблице

как сделать так чтобы, при добавлении нового поля в таублицу автоматически заполнялся номер строки?
Ответить с цитированием
  #2  
Старый 10.05.2006, 05:41
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Добавить поле типа "Счетчик"
Ответить с цитированием
  #3  
Старый 14.05.2006, 17:57
hotspur hotspur вне форума
Прохожий
 
Регистрация: 08.05.2006
Сообщения: 6
Репутация: 10
По умолчанию

Поле типа "счетчик" будет первичным уникальным индексом. Если уже есть перыичный уникальный индекс в таблице, то я думаю что стоит посмотреть в сторону TCalculatedField.
Ответить с цитированием
  #4  
Старый 23.05.2006, 16:35
ivan73 ivan73 вне форума
Прохожий
 
Регистрация: 26.12.2005
Сообщения: 8
Репутация: 10
По умолчанию

что за тип БД?
просто сделайте тригер-автоинкремент для ключевого поля
Ответить с цитированием
  #5  
Старый 02.06.2006, 12:18
Аватар для АлександрЪ
АлександрЪ АлександрЪ вне форума
Прохожий
 
Регистрация: 08.02.2006
Адрес: Moskau
Сообщения: 5
Репутация: 10
По умолчанию

Оч просто. В коде выполняешь вначале DBGrid.DataSource.DataSet.Last, затем запоминаешь это типа StrToInt, затем выполняешь IntToStr(StrToInt+1). И без инкрементов. Если ничё не понятно,- пиши. Расскажу чиста канкретна.
__________________
АлександрЪ
Ответить с цитированием
  #6  
Старый 28.02.2007, 10:56
Чубайс Чубайс вне форума
Прохожий
 
Регистрация: 28.02.2007
Сообщения: 2
Репутация: 10
По умолчанию

я сделал вот так:

procedure TForm_predmet.PredmetOraTableNewRecord(DataSet: TDataSet);
var maxnom:variant;
begin
Form_predmet.PredmetIdOraQuery.Execute;
maxnom:=Form_predmet.PredmetIdOraQuery.Fields[0].Value;
if maxnom=null then maxnom:=0;
Form_predmet.PredmetOraTable.FieldByName('Predmet_ id').Value:=maxnom+1;
end;

PredmetIdOraQuery.SQL:=Select max(usl_id) from p_usluga
Ответить с цитированием
  #7  
Старый 02.03.2007, 12:15
Аватар для NiiliT
NiiliT NiiliT вне форума
Прохожий
 
Регистрация: 02.03.2007
Сообщения: 15
Репутация: 10
По умолчанию Заголовок

обычно: "а с какой базой Вы работаете!::?"

т.к.
в Access лучше использовать поле типа "Счечик" (Aristarh Dark +1)
в MsSQL лучше либо identity(1,1), либо в самой БД newid()
в InterBase пишешь тригер
в Oracle создаёшь Sequence и пишешь тригер



а вот типа этого:
DBGrid.DataSource.DataSet.Last жесть! .... обьясняю:
Работают два пользователя НА РАЗНЫХ КОМПАХ с одной и той же БД: первый нажал на кнопку "Добавить" и второй сделал тоже самое! У них у обоих последняя запист.... потом у обоих + 1 и .........Ж.О.П.А. при сохранении.
Сохраняют: кто первый сохранит у того все норм, а кто второй...ОШИБКА
Ответить с цитированием
  #8  
Старый 02.03.2007, 12:23
Аватар для NiiliT
NiiliT NiiliT вне форума
Прохожий
 
Регистрация: 02.03.2007
Сообщения: 15
Репутация: 10
По умолчанию

Цитата:
Сообщение от Чубайс
я сделал вот так:

procedure TForm_predmet.PredmetOraTableNewRecord(DataSet: TDataSet);
var maxnom:variant;
begin
Form_predmet.PredmetIdOraQuery.Execute;
maxnom:=Form_predmet.PredmetIdOraQuery.Fields[0].Value;
if maxnom=null then maxnom:=0;
Form_predmet.PredmetOraTable.FieldByName('Predmet_ id').Value:=maxnom+1;
end;

PredmetIdOraQuery.SQL:=Select max(usl_id) from p_usluga

не надо так делать!!! эти реализации должны быть в БД!!! блокировки данных наделаете!!! (при однопользовательской и LAST пойдет), но "приучаемся сразу к правильному"
Ответить с цитированием
  #9  
Старый 11.04.2007, 13:11
Чубайс Чубайс вне форума
Прохожий
 
Регистрация: 28.02.2007
Сообщения: 2
Репутация: 10
По умолчанию

Пасип
пошел переделывать
создавать Sequence и писать тригер
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 02:58.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter