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

Вниз

Уникальный код   Найти похожие ветки 

 
fisherman ©   (2007-08-09 14:17) [0]

Всем привет!
Подскажите, есть у Делфи функция формирующая уникальный код


 
Сергей М. ©   (2007-08-09 14:21) [1]

CreateGUID устроит ?


 
Rouse_ ©   (2007-08-09 14:21) [2]

CreateGUID()


 
Jeer ©   (2007-08-09 14:25) [3]


> формирующая уникальный код


твоего нового уникального приложения ?


 
fisherman ©   (2007-08-09 14:26) [4]

спасибо, сейчас попробую


 
tesseract ©   (2007-08-09 14:34) [5]

for i:=1 to 99 do
begin
 unicode:=unicode+strtoint(random(99));
end;


 
fisherman ©   (2007-08-09 14:47) [6]


> CreateGUID()

не совсем то, мне надо заносить в DBF-ку онформацию и каждой записи присваивать уникальный код.
База данных используется другой программой написанной на FoxPro, и там используется функция sys(3) возвращающая уникальный 8-ми знаковый числовой код.
Вот что-то наподобие этого надо


 
Сергей М. ©   (2007-08-09 14:56) [7]


> мне надо заносить в DBF-ку онформацию и каждой записи присваивать
> уникальный код


Чем же не устроил уникальный GUID ?

И слышал ли ты хоть что-либо о генераторах автоинкрементных целочисленных значений ?

И какого лешего ты постишь вопрос здесь, а не в форуме по базам данных ?


 
l_v   (2007-08-09 15:01) [8]

Shift+Ctrl+G... :)
правда стринг, и правда он тебе совсем неподходит... :)


 
tesseract ©   (2007-08-09 15:38) [9]


> не совсем то, мне надо заносить в DBF-ку онформацию и каждой
> записи присваивать уникальный код.


Автоинкрементые поля уходят в Ж ?


 
Leonid Troyanovsky ©   (2007-08-09 15:45) [10]


> fisherman ©   (09.08.07 14:47) [6]

> FoxPro, и там используется функция sys(3) возвращающая уникальный
> 8-ми знаковый числовой код.
> Вот что-то наподобие этого надо

Value := Format("%8.8d", [Random(100000000)]);

--
Regards, LVT.


 
{RASkov} ©   (2007-08-09 16:22) [11]

Как-то не больно давно я тоже такой "ерундой" страдал :) Вот:
http://delphimaster.net/view/2-1179178018/
Можно и под "числовой" переделать....


 
l_v   (2007-08-09 16:25) [12]


> {RASkov} ©   (09.08.07 16:22) [11]


Произошла ошибка:
Не найдена ветка № 1179178018, возможно она была удалена или перенесена в другой форум.

Назад

(c) Мастера DELPHI


 
{RASkov} ©   (2007-08-09 16:26) [13]

Последний пост из той ветки:

[9] {RASkov} ©   (15.05.07 18:21)
В общем остановился на этом (может кому и пригодится):
function GetDID(const F12Ch: Boolean=True): String;
const Ch: array [0..25] of Char = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    MAXCHAR = 3-1;
var ArrPosCh: array [0..MAXCHAR] of Byte;
  SetPosCh: set of Byte;
  N, K, J, Min, TmpI: Byte;
begin
for N:= 0 to MAXCHAR do ArrPosCh[N]:=0;
N:=0; SetPosCh:=[];
Result:=IntToStr(Round((Now-RoundTo(Now, 2))*10000000));
Randomize; J:=Length(Result)-(2-ORD(F12Ch));
while N<=MAXCHAR do begin
 K:=2+Random(J);
 if not ((K in SetPosCh) or (Pred(K) in SetPosCh) or (Succ(K) in SetPosCh)) then begin
  Include(SetPosCh, K);
  ArrPosCh[N]:=K;
  INC(N);
 end;
end;
if F12Ch then begin
 for N:=0 to MAXCHAR do begin
  Min:=N;
  for J:=N+1 to MAXCHAR do
   if ArrPosCh[J] < ArrPosCh[Min] then Min:=J;
   TmpI:=ArrPosCh[N];
   ArrPosCh[N]:=ArrPosCh[Min];
   ArrPosCh[Min]:=TmpI;
 end;
 for N:= 0 to MAXCHAR do Insert(Ch[Random(26)], Result, ArrPosCh[N]+N);
end else for N:= 0 to MAXCHAR do Result[ArrPosCh[N]]:=Ch[Random(26)];
end;
Я подозреваю, что совпадений "не будет никогда". ) С условием, что генериться будет минимум один раз на одном компе. Естественно, если в базе уже будет такой идентификатор, то процедура повториться. Я вот думаю, тот ли участок взял из числа (дата+время) или лишнего от начала отсек....
Кстати, может и не надо символы вставлять, тогда и получится число(как я и хотел)?

> [7] Gydvin ©   (15.05.07 07:22)

Не понял вопроса... в чем смысл функции? - ты спрашиваешь... А неужели не понятно, да и расписывал про все это зря что ли....

> [8] Kolan ©   (15.05.07 07:46)
GUID и обреж

Тоже вариант....
Ладно... всем спасибо за участие ;)


 
DVM ©   (2007-08-09 16:28) [14]

GUID статистически уникален, но абсолютная уникальность не гарантирована.


 
antonn ©   (2007-08-09 16:32) [15]


> И какого лешего ты постишь вопрос здесь, а не в форуме по
> базам данных ?

затоптал%)



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

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

Наверх




Память: 0.5 MB
Время: 0.023 c
15-1186073298
Kerk
2007-08-02 20:48
2007.09.02
wget ?


15-1186401024
Nic
2007-08-06 15:50
2007.09.02
Бывает ли бесплатное средство для восстановления


15-1186401509
de.
2007-08-06 15:58
2007.09.02
Acer 5100


15-1186463631
KilkennyCat
2007-08-07 09:13
2007.09.02
Дожили: американцы учат программированию.


3-1178193423
Shura
2007-05-03 15:57
2007.09.02
Порядок сохранения записей в ClientDataSet