----- Original Message -----
From: Tony Blomfield <[EMAIL PROTECTED]>


> Thanks Kerry, I already have that working ( or very similar) from back
> before I woke up to generators, but we did have some problems with
deadlocks
> on this when it was getting hit hard.

If you don't call the code from within a transaction, I don't see how you
can encounter a deadlock.

> It looks like Midas will give us an opportunity to control the code a
> lot better, and avoid deadlock situations anyway.

Certainly will.

Kerry S

PS: To use the 'database' list just send email to '[EMAIL PROTECTED]'


> Using generators you never
> ever get deadlock situations, not something you ever have to worry about.
>
> Should this have been on another list? Database? How please?
> -----Original Message-----
> From: [EMAIL PROTECTED] <[EMAIL PROTECTED]>
> To: Multiple recipients of list database <[EMAIL PROTECTED]>
> Date: Wednesday, 3 November 1999 16:36
> Subject: [DUG-DB]: Re: [DUG]: Generators - Sequences, and Identities
>
>
> >
> >
> >[ I moved this to 'database' too ]
> >
> >> OK. Thats what I meant by an increment table. Do you experiance any
> >deadlock
> >> issues with this idea?
> >
> >As long as you don't access the table inside a transaction, and don't
care
> >if you lose the odd sequence number, you should be fine.
> >
> >Implement something like this (except make it syntactically correct):
> >
> >create table incrementTable( keyid : varchar, nextValue : integer );
> >
> >function getNextSequence( keyid : String ) : integer
> >var originalValue : integer;
> >    newValue      : integer;
> >begin
> > repeat
> >   with Query1 do
> >   begin
> >   SQL.Add('select nextValue from incrementTable
> >           where keyid = :keyid');
> >
> >   Params[0].AsString := keyid;
> >   Open;
> >   originalValue := fieldByName('nextValue');
> >
> >   newValue := originalValue + 1;
> >
> >   SQL.Clear;
> >   SQl.Add('update incrementTable
> >               set nextValue = :newValue
> >             where keyid = :keyid
> >               and nextValue = :originalValue');
> >
> >   ParamsAsAppropriate :-)
> >   ExecSQL;
> >
> >   // See if the update worked
> > until Query1.RowsAffected = 1;
> >
> > result := newValue;
> >end;
> >
> >
> >Cheers,
> >Kerry S
> >PS: That's about right, isn't it Greg?
> >
> >-----Original Message-----
> >From: Julien Thomas <[EMAIL PROTECTED]>
> >To: Multiple recipients of list delphi <[EMAIL PROTECTED]>
> >Date: Wednesday, 3 November 1999 3:53 PM
> >Subject: RE: [DUG]: Generators - Sequences, and Identities
> >
> >
> >>We use a separate table to maintain the nextID for all the tables.
> >>
> >>> -----Original Message-----
> >>> From: Tony Blomfield [SMTP:[EMAIL PROTECTED]]
> >>> Sent: Wednesday, November 03, 1999 3:47 PM
> >>> To: Multiple recipients of list delphi
> >>> Subject: [DUG]:  Generators - Sequences, and Identities
> >>>
> >>> Unless I have missunderstood, SQL7 has no equivolent of Interbases
> >>> generators, or Oracles Sequences? Instead it has the identity data
type
> >>> which is akin to Access or paradox Autoincrement columns.
> >>>
> >>> The only time you seem to be able to see what your identity value
was/is
> >>> is
> >>> immediatly following a insert statement.
> >>>
> >>> Coming form an Interbase background for the last few years, this idea
of
> >>> identity columns looks very decadent, and  extremely shortsighted of
> >>> MS/Sybase, and  really surprised me that it is still like this.
> >>>
> >>> So what about the multi user situation. Can we guarantee that Select
> >>> Identity@@ will allways get the last identity for this specific user?
> >>>
> >>> What a dumb dumb idea. It more or less completely ignores the concept
of
> >>> using surrogate keys.
> >>>
> >>> What do others do about this for MSSQL based Delphi Apps? It seems to
me
> >>> that the only reasonable approach is to use an increment table, and
> >>> copmpletely abandon the Indentity concept. What are others doing here?
> >>>
> >>> Thanks,
> >>>
> >>> Tony.
> >>>
> >>>
> >-------------------------------------------------------------------------
> >-
> >>> -
> >>>     New Zealand Delphi Users group - Delphi List -
[EMAIL PROTECTED]
> >>>                   Website: http://www.delphi.org.nz
> >>
>
>---------------------------------------------------------------------------
> >>    New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED]
> >>                  Website: http://www.delphi.org.nz
> >
>
>---------------------------------------------------------------------------
> >    New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED]
> >                  Website: http://www.delphi.org.nz
> >
> >
> >
> >
>
>---------------------------------------------------------------------------
> >  New Zealand Delphi Users group - Database List - [EMAIL PROTECTED]
> >                  Website: http://www.delphi.org.nz
>
> --------------------------------------------------------------------------
-
>   New Zealand Delphi Users group - Database List - [EMAIL PROTECTED]
>                   Website: http://www.delphi.org.nz

---------------------------------------------------------------------------
  New Zealand Delphi Users group - Database List - [EMAIL PROTECTED]
                  Website: http://www.delphi.org.nz

Reply via email to