<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>myOffice Email Message</TITLE>
<META http-equiv=content-type content="text/html; charset=iso-8859-1">
<META content=2002-11-01 name=date>
<STYLE type=text/css></STYLE>

<META content="MSHTML 6.00.2800.1400" name=GENERATOR></HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2>Very good. Thanks for that Gary.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>Cheers,</FONT></DIV>
<DIV><FONT face=Arial size=2>Phil.</FONT></DIV>
<BLOCKQUOTE 
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
  <DIV style="FONT: 10pt arial">----- Original Message ----- </DIV>
  <DIV 
  style="BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: black"><B>From:</B> 
  <A title=gary@123.co.nz href="mailto:gary@123.co.nz">Gary T. Benner</A> </DIV>
  <DIV style="FONT: 10pt arial"><B>To:</B> <A title=delphi@delphi.org.nz 
  href="mailto:delphi@delphi.org.nz">delphi@delphi.org.nz</A> </DIV>
  <DIV style="FONT: 10pt arial"><B>Sent:</B> Friday, January 14, 2005 12:22 
  PM</DIV>
  <DIV style="FONT: 10pt arial"><B>Subject:</B> RE: Re: [DUG] concurrent 
  Interbase Transactions</DIV>
  <DIV><BR></DIV><SPAN style="COLOR: #ff0000"><B><SPAN 
  style="FONT-FAMILY: MS Sans Serif">[Reply]</SPAN></B></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN style="COLOR: #000000">HI 
  Phil, et al ..</SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN style="COLOR: #000000">The 
  main point is that the IB/Firebird generator mechanism does not function 
  inside a transaction.</SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN style="COLOR: #000000">The 
  best way to hanlde it is to give yourself a bet both ways.</SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN style="COLOR: #000000">Use a 
  trigger like this, so that if you specify a pk value, it is supplied, 
  otherwise one is created.</SPAN></SPAN> 
  <P><SPAN style="COLOR: #000080"><SPAN 
  style="FONT-FAMILY: Courier,monospace"><SPAN style="FONT-SIZE: 9pt">create 
  trigger trMYTABLE for MYTABLE </SPAN></SPAN></SPAN>
  <P><SPAN style="COLOR: #000080"><SPAN 
  style="FONT-FAMILY: Courier,monospace"><SPAN style="FONT-SIZE: 9pt">active 
  before insert position 0</SPAN></SPAN></SPAN> 
  <P><SPAN style="COLOR: #000080"><SPAN 
  style="FONT-FAMILY: Courier,monospace"><SPAN style="FONT-SIZE: 9pt">as 
  begin</SPAN></SPAN></SPAN> 
  <P><SPAN style="COLOR: #000080"><SPAN 
  style="FONT-FAMILY: Courier,monospace"><SPAN style="FONT-SIZE: 9pt">if (new.id 
  is null) then new.id=gen_id(genANY,1);</SPAN></SPAN></SPAN> 
  <P><SPAN style="COLOR: #000080"><SPAN 
  style="FONT-FAMILY: Courier,monospace"><SPAN 
  style="FONT-SIZE: 9pt">end;</SPAN></SPAN></SPAN> 
  <P><SPAN style="COLOR: #000000"><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt">and in code I have a library routine(s) to get the 
  generator value.</SPAN></SPAN></SPAN> 
  <P><SPAN style="COLOR: #000080"><SPAN 
  style="FONT-FAMILY: Courier,monospace"><SPAN style="FONT-SIZE: 9pt">function 
  GetNewID : integer;</SPAN></SPAN></SPAN> 
  <P><SPAN style="COLOR: #000080"><SPAN 
  style="FONT-FAMILY: Courier,monospace"><SPAN 
  style="FONT-SIZE: 9pt">begin</SPAN></SPAN></SPAN> 
  <P><SPAN style="COLOR: #000080"><SPAN 
  style="FONT-FAMILY: Courier,monospace"><SPAN style="FONT-SIZE: 9pt">with 
  TIBQuery.create(nil) do try</SPAN></SPAN></SPAN> 
  <P><SPAN style="COLOR: #000080"><SPAN 
  style="FONT-FAMILY: Courier,monospace"><SPAN style="FONT-SIZE: 9pt">.. // 
  connect to database etc</SPAN></SPAN></SPAN> 
  <P><SPAN style="COLOR: #000080"><SPAN 
  style="FONT-FAMILY: Courier,monospace"><SPAN 
  style="FONT-SIZE: 9pt">sql.add('select gen_id(genANY,1) newid from 
  rdb$database');</SPAN></SPAN></SPAN> 
  <P><SPAN style="COLOR: #000080"><SPAN 
  style="FONT-FAMILY: Courier,monospace"><SPAN 
  style="FONT-SIZE: 9pt">open;</SPAN></SPAN></SPAN> 
  <P><SPAN style="COLOR: #000080"><SPAN 
  style="FONT-FAMILY: Courier,monospace"><SPAN 
  style="FONT-SIZE: 9pt">result:=fieldbyname('newid').asInteger;</SPAN></SPAN></SPAN> 

  <P><SPAN style="COLOR: #000080"><SPAN 
  style="FONT-FAMILY: Courier,monospace"><SPAN 
  style="FONT-SIZE: 9pt">finally</SPAN></SPAN></SPAN> 
  <P><SPAN style="COLOR: #000080"><SPAN 
  style="FONT-FAMILY: Courier,monospace"><SPAN style="FONT-SIZE: 9pt">free; 
  </SPAN></SPAN></SPAN>
  <P><SPAN style="COLOR: #000080"><SPAN 
  style="FONT-FAMILY: Courier,monospace"><SPAN 
  style="FONT-SIZE: 9pt">end;</SPAN></SPAN></SPAN> 
  <P><SPAN style="COLOR: #000080"><SPAN 
  style="FONT-FAMILY: Courier,monospace"><SPAN 
  style="FONT-SIZE: 9pt">end;</SPAN></SPAN></SPAN> 
  <P><SPAN style="COLOR: #000000"><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt">For those interested, the above query references the 
  rdb$database table, a system table with ever only one record. This is done to 
  satisfy the SQL92 query syntax when accessing the gen_id function - a built in 
  IB/Firebird (only) function.</SPAN></SPAN></SPAN> 
  <P><SPAN style="COLOR: #000000"><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt">HTH</SPAN></SPAN></SPAN> 
  <P><SPAN style="COLOR: #000000"><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt">Gary</SPAN></SPAN></SPAN> 
  <P><SPAN style="COLOR: #000000"><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt">A</SPAN></SPAN></SPAN><SPAN 
  style="FONT-FAMILY: MS Sans Serif"><SPAN style="FONT-SIZE: 10pt"><SPAN 
  style="COLOR: #ff0000"><B>t 11:26 on 14/01/2005 you wrote 
  </B></SPAN></SPAN></SPAN>
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;To : 
  delphi@ns3.123.co.nz</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;CC : 
  </SPAN></SPAN></SPAN>
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;From: Phil 
  Middlemiss, phil@tumonz.co.nz</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;Content Type: 
  text/plain</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;Attached: 
  </SPAN></SPAN></SPAN>
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;</SPAN></SPAN></SPAN> 

  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;Thanks to all who 
  replied. In the end I did the inevitable (Johns</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;suggestion) and now 
  fetch a new ID first and include it in the INSERT</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;operation rather than 
  have the trigger.</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;</SPAN></SPAN></SPAN> 

  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN 
  style="COLOR: #008000">&gt;Phil.</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;----- Original 
  Message ----- </SPAN></SPAN></SPAN>
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;From: "Steve Aish" 
  &lt;Steve.Aish@twoa.ac.nz&gt;</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;To: 
  &lt;delphi@ns3.123.co.nz&gt;</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;Sent: Friday, January 
  14, 2005 10:55 AM</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;Subject: Re: [DUG] 
  concurrent Interbase Transactions</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;</SPAN></SPAN></SPAN> 

  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;</SPAN></SPAN></SPAN> 

  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; The way I handle 
  this is to insert the record and then immediately do a</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; search for the 
  record I just inserted. This will give you the value</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; just 
  inserted.</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN 
  style="COLOR: #008000">&gt;&gt;</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; 
  e.g.</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN 
  style="COLOR: #008000">&gt;&gt;</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; insert into 
  debtor_trans (accountnumber, amount, transdate, ...)</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN 
  style="COLOR: #008000">&gt;&gt;</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; trigger fires 
  and fills in the unique seq_no</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN 
  style="COLOR: #008000">&gt;&gt;</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; select 
  max(seq_no) from debtor_trans where accountnumber =</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; accountnumber 
  and amount = amount and transdate ...</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN 
  style="COLOR: #008000">&gt;&gt;</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; this will return 
  the seq_no from the record you just inserted.</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN 
  style="COLOR: #008000">&gt;&gt;</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; I don't know if 
  this is the best or most efficient way of doing this</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; but it has 
  always worked for me.</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN 
  style="COLOR: #008000">&gt;&gt;</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; 
  Steve</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN 
  style="COLOR: #008000">&gt;&gt;</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN 
  style="COLOR: #008000">&gt;&gt;</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN 
  style="COLOR: #008000">&gt;&gt;</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; &gt;&gt;&gt; 
  phil@tumonz.co.nz 14/01/2005 10:16:37 a.m. &gt;&gt;&gt;</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; MessageI was 
  kind of hoping to avoid that, but it's not a biggie. Is</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; there no way to 
  fetch the record that has just been added within a</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; 
  transaction?</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN 
  style="COLOR: #008000">&gt;&gt;</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; 
  Cheers,</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; 
  Phil.</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; ----- Original 
  Message ----- </SPAN></SPAN></SPAN>
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; From: 
  JC</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; To: 'NZ Borland 
  Developers Group - Delphi List'</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; Sent: Friday, 
  January 14, 2005 9:27 AM</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; Subject: RE: 
  [DUG] concurrent Interbase Transactions</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN 
  style="COLOR: #008000">&gt;&gt;</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN 
  style="COLOR: #008000">&gt;&gt;</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; Hi 
  Phil</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN 
  style="COLOR: #008000">&gt;&gt;</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; It might be 
  safer to have the generator giving you a new unique</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; number (on 
  request, not in a trigger) and to use and insert that 
  with</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; the data in the 
  ExeQuery.</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; As you 
  indicated, when implemented in a trigger then your fetch, 
  to</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; get this value, 
  may come too late and you end up with somebody else's</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; 
  number.</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN 
  style="COLOR: #008000">&gt;&gt;</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; 
  Cheers,</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; 
  John</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; -----Original 
  Message-----</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; From: 
  delphi-bounces@ns3.123.co.nz</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; 
  [mailto:delphi-bounces@ns3.123.co.nz] On Behalf Of Phil 
  Middlemiss</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; Sent: Friday, 14 
  January 2005 8:42 a.m.</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; To: NZ Borland 
  Developers Group - Delphi List</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; Subject: [DUG] 
  concurrent Interbase Transactions</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN 
  style="COLOR: #008000">&gt;&gt;</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN 
  style="COLOR: #008000">&gt;&gt;</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; Hi everyone - 
  hope you all had a good break. Looks like summer has</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; finally arrived 
  (now that everyone's back at work)! Anyway...</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN 
  style="COLOR: #008000">&gt;&gt;</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; I'm using 
  Firebird (and transactions) for the first time. I'm</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; connecting to a 
  remote database via the Firebird Server with no</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; problems, but I 
  have a question about transactions:</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN 
  style="COLOR: #008000">&gt;&gt;</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; When I insert a 
  new record, I use a trigger and a generator to</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; generate a new 
  unique ID for the new record - I also query the generator</SPAN></SPAN></SPAN> 

  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; to see what the 
  new value is that was returned by the trigger. The code</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; snippet is as 
  follows:</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN 
  style="COLOR: #008000">&gt;&gt;</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; 
  orderTransaction.Active := True;</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; with orderQuery 
  do //insert the record</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; 
  begin</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; 
  ExecQuery;</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; with 
  IBCurrentGeneratorValueQuery do // this query fetches</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; the current 
  value of the generator</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; 
  try</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; Transaction := 
  orderTransaction; // share the same</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; transaction as 
  the order</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; 
  Open;</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; 
  result:=FieldByName('newID').asInteger; // get the</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; generator 
  value</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; 
  except</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; 
  result:=-1;</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; 
  end;</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; 
  orderTransaction.Commit;</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; 
  end;</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN 
  style="COLOR: #008000">&gt;&gt;</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; The question is, 
  if multiple clients access the database server at</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; the same time, 
  will IBCurrentGeneratorValueQuery still return the</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; correct value, 
  or if another concurrent transaction on another thread</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; increments the 
  generator, will this query return the wrong value?</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN 
  style="COLOR: #008000">&gt;&gt;</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; When I was using 
  MySQL (with PHP) I could use mysql_insert_id() to</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; query the new 
  key value. I guess that if I could get hold of the newly</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; inserted row I 
  could just get the field value, but the same concurrency</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; issue applies 
  and I'm not sure how to get the record I just inserted.</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN 
  style="COLOR: #008000">&gt;&gt;</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; 
  Cheers,</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; 
  Phil.</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN 
  style="COLOR: #008000">&gt;&gt;</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN 
  style="COLOR: #008000">&gt;&gt;</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; 
  ---</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; Incoming mail is 
  certified Virus Free.</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; Checked by AVG 
  anti-virus system (http://www.grisoft.com).</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; Version: 6.0.832 
  / Virus Database: 566 - Release Date: 10/01/2005</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN 
  style="COLOR: #008000">&gt;&gt;</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN 
  style="COLOR: #008000">&gt;&gt;</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN 
  style="COLOR: #008000">&gt;&gt;</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN 
  style="COLOR: #008000">&gt;&gt;</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN 
  style="COLOR: #008000">&gt;&gt;</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; 
  --------------------------------------------------------------------------</SPAN></SPAN></SPAN> 

  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN 
  style="COLOR: #008000">&gt;----</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN 
  style="COLOR: #008000">&gt;&gt;</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN 
  style="COLOR: #008000">&gt;&gt;</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; 
  _______________________________________________</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; Delphi mailing 
  list</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; 
  Delphi@ns3.123.co.nz</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; 
  http://ns3.123.co.nz/mailman/listinfo/delphi</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; 
  _______________________________________________</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; Delphi mailing 
  list</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; 
  Delphi@ns3.123.co.nz</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;&gt; 
  http://ns3.123.co.nz/mailman/listinfo/delphi</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN 
  style="COLOR: #008000">&gt;&gt;</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN 
  style="COLOR: #008000">&gt;&gt;</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;</SPAN></SPAN></SPAN> 

  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;</SPAN></SPAN></SPAN> 

  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN 
  style="COLOR: #008000">&gt;_______________________________________________</SPAN></SPAN></SPAN> 

  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;Delphi mailing 
  list</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN 
  style="COLOR: #008000">&gt;Delphi@ns3.123.co.nz</SPAN></SPAN></SPAN> 
  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN 
  style="COLOR: #008000">&gt;http://ns3.123.co.nz/mailman/listinfo/delphi</SPAN></SPAN></SPAN> 

  <P><SPAN style="FONT-FAMILY: MS Sans Serif"><SPAN 
  style="FONT-SIZE: 10pt"><SPAN style="COLOR: #008000">&gt;</SPAN></SPAN></SPAN>
  <P><FONT face=arial color=navy size=1></P>
  <DIV style="WIDTH: 260px; HEIGHT: 50px">
  <MARQUEE id=marquee1 style="WIDTH: 260px; HEIGHT: 200px" trueSpeed 
  scrollAmount=5 scrollDelay=20 direction=right behavior=slide loop=1 
border="2">
  <HR>

  <TABLE>
    <TBODY>
    <TR>
      <TD><FONT face=helvetica,verdana,arial color=black size=4>Gary Benner 
        </FONT></TD></TR>
    <TR>
      <TD><FONT face="arial, arial, helvetica, sans-serif" color=black 
        size=2>e-Engineer, Lecturer, and Software Developer</FONT></TD></TR><BR>
    <TR>
      <TD><FONT face="arial, arial, helvetica, sans-serif" color=#000099 
        size=2><B><A style="COLOR: blue; TEXT-DECORATION: none" 
        href="http://www.123.co.nz">123 Internet Limited</A></B></FONT></TD></TR>
    <TR>
      <TD><FONT face="arial, arial, helvetica, sans-serif" color=#000099 
        size=2><B><A style="COLOR: #993333; TEXT-DECORATION: none" 
        href="http://www.waiariki.ac.nz">Waiariki Institute of 
        Technology</A></B></FONT></TD></TR>
    <TR>
      <TD><FONT face="arial, arial, helvetica, sans-serif" color=#cece00 
        size=2><B><A style="COLOR: #cece00; TEXT-DECORATION: none" 
        href="http://www.sunshinebags.co.nz">Sunshine Garden Bag 
        Co.</A></B></FONT></TD></TR>
    <TR>
      <TD><FONT face="arial, arial, helvetica, sans-serif" color=red 
        size=2><B><A style="COLOR: red; TEXT-DECORATION: none" 
        href="http://www.sommnet.com">Sommnet.com Limited</A></B></FONT></TD></TR>
    <TR>
      <TD><FONT face=! size=1 ?helvetica,verdana,arial?>Mob: 021 966 
      992</FONT></TD></TR>
    <TR>
      <TD><FONT face=helvetica,verdana,arial size=1>Email: <A 
        href="mailto:gary@123.co.nz">gary@123.co.nz</A> 
  </FONT></TD></TR></TBODY></TABLE></MARQUEE></DIV><BR><BR>Ref#: 41006<BR><BR>
  <P>
  <HR>

  <P></P>_______________________________________________<BR>Delphi mailing 
  list<BR>Delphi@ns3.123.co.nz<BR>http://ns3.123.co.nz/mailman/listinfo/delphi<BR></BLOCKQUOTE></FONT></BODY></HTML>