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

Вниз

Как сделать аналог автоинкремнтоного поля в dbf   Найти похожие ветки 

 
Term ©   (2003-10-16 12:38) [0]

Как сделать аналог автоинкремнтоного поля в dbf


 
grusty   (2003-10-16 12:44) [1]

В DBF, наверное, никак. Но можно создать числовое поле и по единице прибавлять при добавлении записи...


 
Term ©   (2003-10-16 12:52) [2]

a использование GUID, можете дать примерчик


 
Term ©   (2003-10-16 13:26) [3]

ну ктонить.... посоветуйте как лучше отранизовать
а вот такой вариант
SELECT MAX(id) FROM Table
и потом полученное значение увеличивать на единицу и вставлять в поле, или это всё как то можно сделать по человечески, мне чтото другое в голову не приходит, посоветуйте......


 
Sandman25 ©   (2003-10-16 13:45) [4]

procedure TdmTables.qZakazUpdateError(DataSet: TDataSet; E: EDatabaseError;
UpdateKind: TUpdateKind; var UpdateAction: TUpdateAction);
begin
if (UpdateKind = ukInsert) and (Pos("Key violation", E.message) > 0) then
begin
qZakazId.NewValue := GetNewZakazId; // вызов функции для нахождения следующего;
UpdateAction := uaRetry;
end;
end;

function TdmTables.GetNewZakazId: integer;
begin
with qGetNewZakazId do
try
// SQL.Text = select max(id) from zakaz
Open;
Result := Fields[0].AsInteger + 1;
finally
Close;
end;
end;


 
Anatoly Podgoretsky ©   (2003-10-16 13:47) [5]

dBase VII есть автоинкриментные поля


 
Владислав ©   (2003-10-16 15:18) [6]

Где то читал пример такой. Создается таблица с одним полем и с одной записью (как раз счетчик). Чтобы получить его значение, блокируется таблица, берется значение счетчика, а потом в таблице инкрементируется, дальше разблокируется. (Блокировка необходима для многопользовательской системы).


 
Stas ©   (2003-10-16 16:08) [7]

Делаешь еще одну таблицу, в которой есть одно поле и будет всего одна запись-значение Автоинкремента.
На событие OnInsert считываешь оттуда значение, добавляешь 1 записываешь в свою таблицу и в ту где хранится это значение.



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

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

Наверх




Память: 0.48 MB
Время: 0.024 c
1-41152
Zheks
2003-11-03 12:18
2003.11.13
Приостановка выполнения процедуры


1-41209
slivka
2003-11-01 22:02
2003.11.13
Как открыть ключь реестра при помощи переменной ?


8-41763
nice
2003-07-05 20:18
2003.11.13
Midi из файла ресурсов?


1-41593
HydraMarat
2003-10-27 01:38
2003.11.13
Значение типа из строки


1-41542
Stratos
2003-10-27 23:28
2003.11.13
Перемещение ряда в TStringGrid e