<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE></TITLE>
<META content=text/html;charset=iso-8859-1 http-equiv=Content-Type>
<META name=GENERATOR content="MSHTML 8.00.7600.16625"></HEAD>
<BODY style="PADDING-LEFT: 10px; PADDING-RIGHT: 10px; PADDING-TOP: 15px" 
id=MailContainerBody leftMargin=0 topMargin=0 bgColor=#ffffff text=#000000 
CanvasTabStop="true" name="Compose message area">
<DIV><FONT size=2 face=Arial>I think I have to agree with your words[5] and 
words[6] .&nbsp;&nbsp; Where - &nbsp;words:array[0..xxx] of string;</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV><FONT size=2 face=Arial>John</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV>I work on systems where some idiot used a decimal(9,0) as a PK and mixed it 
with other tables with integers, I think with any PK the main thing is use the 
same otherwise you force the server to use hash joins (v slow) and secondly use 
the smallest key you can (I'm currently using a bigint derived from the server 
time) I really can see no reason for using anything larger than a bigint for a 
surrogate,&nbsp; you can use a generator (like I do) or identity for a client 
high/low, if you are going to cluster the pk you want it to be 
sequential<BR><BR>MSSql 2008 offers a 'sequential guid' but that is 16 bytes 
versus 8 for a bigint<BR><BR>Neven<BR></DIV>
<BLOCKQUOTE cite=mid:DCC48DE031DC43EFB006AEFA1AEA68AB@JohnSony2 type="cite">
  <META name=GENERATOR content="MSHTML 8.00.7600.16588">
  <STYLE>@font-face {
        font-family: Calibri;
}
@font-face {
        font-family: Consolas;
}
@page WordSection1 {size: 8.5in 11.0in; margin: 1.0in 1.0in 1.0in 1.0in; }
P.MsoNormal {
        MARGIN: 0in 0in 0pt; FONT-FAMILY: "Calibri","sans-serif"; FONT-SIZE: 11pt
}
LI.MsoNormal {
        MARGIN: 0in 0in 0pt; FONT-FAMILY: "Calibri","sans-serif"; FONT-SIZE: 11pt
}
DIV.MsoNormal {
        MARGIN: 0in 0in 0pt; FONT-FAMILY: "Calibri","sans-serif"; FONT-SIZE: 11pt
}
A:link {
        COLOR: blue; TEXT-DECORATION: underline; mso-style-priority: 99
}
SPAN.MsoHyperlink {
        COLOR: blue; TEXT-DECORATION: underline; mso-style-priority: 99
}
A:visited {
        COLOR: purple; TEXT-DECORATION: underline; mso-style-priority: 99
}
SPAN.MsoHyperlinkFollowed {
        COLOR: purple; TEXT-DECORATION: underline; mso-style-priority: 99
}
SPAN.EmailStyle17 {
        FONT-FAMILY: "Calibri","sans-serif"; COLOR: windowtext; mso-style-type: personal-compose
}
...MsoChpDefault {
        mso-style-type: export-only
}
DIV.WordSection1 {
        page: WordSection1
}
</STYLE>

  <DIV>
  <DIV><FONT size=2 face=Arial>Dealing with index/ID field that is set as binary 
  - here is the solution that worked in case any one else comes across 
  same....</FONT></DIV>
  <DIV>&nbsp;</DIV>
  <DIV><FONT size=2 face=Arial>Note for MSSQL using such a field in a JOIN SQL 
  statement would be perfectly fine as normal, as MSSQL has a native binary 
  type.&nbsp;&nbsp; Delphi ADO however does not, so this is the hoops I had to 
  jump through when its two different datasets and I needed to get the value in 
  order to open the other with SQL or as a parameter....</FONT></DIV>
  <DIV>&nbsp;</DIV>
  <DIV><FONT size=2 face=Arial>example - using a Company_ID from Comp table to 
  open Contacts that belong to that Company...</FONT></DIV>
  <DIV>&nbsp;</DIV>
  <DIV><FONT size=2 face=Arial>Comments from friends who know MSSQL&nbsp;- their 
  opinion is that an ID/index field that is binary is unusual practice - 
  restricts what kind to indexes can be made for instance.&nbsp; Anyone here 
  have opinion on this?&nbsp;&nbsp; have others come across ID/Index that is 
  Binary often?</FONT></DIV>
  <DIV>&nbsp;</DIV>
  <DIV><FONT size=2 face=Arial>Step 1:</FONT></DIV>
  <DIV>&nbsp;</DIV>
  <DIV><FONT size=2 face=Arial>&nbsp; ADOQueryComp.SQL.Text:='select *, 
  Cast(Company_ID as VARCHAR(10)) as ACompID, CAST(Company_ID as INT) as DCOMPID 
  from Company '+<BR>&nbsp;&nbsp;&nbsp; 'where Company_Name like 
  '+likestr;<BR></FONT></DIV>
  <DIV><FONT size=2 face=Arial>Note - Casting binary to string/Varchar does not 
  work, but to integer does.&nbsp;&nbsp; Go figure!</FONT></DIV>
  <DIV>&nbsp;</DIV>
  <DIV>&nbsp;</DIV>
  <DIV><FONT size=2 face=Arial>Step 2:</FONT></DIV>
  <DIV>&nbsp;</DIV>
  <DIV><FONT size=2 face=Arial>&nbsp; 
  iCompanyID:=cdsComp.FieldbyName('DCompID').asinteger;<BR></FONT></DIV>
  <DIV><FONT size=2 face=Arial>&nbsp; ADOQueryContact.SQL.Text:='select * from 
  Contact '+<BR>&nbsp;&nbsp;&nbsp; 'where Company_ID = 
  CAST('+inttostr(iCompanyID)+' AS BINARY(8))';<BR></FONT></DIV></DIV>
  <DIV><FONT size=2 face=Arial>John</FONT></DIV><PRE wrap=""><FIELDSET class=mimeAttachmentHeader></FIELDSET>
_______________________________________________
NZ Borland Developers Group - Delphi mailing list
Post: <A class=moz-txt-link-abbreviated href="mailto:delphi@delphi.org.nz">delphi@delphi.org.nz</A>
Admin: <A class=moz-txt-link-freetext href="http://delphi.org.nz/mailman/listinfo/delphi">http://delphi.org.nz/mailman/listinfo/delphi</A>
Unsubscribe: send an email to <A class=moz-txt-link-abbreviated href="mailto:delphi-request@delphi.org.nz">delphi-request@delphi.org.nz</A> with Subject: unsubscribe</PRE></BLOCKQUOTE><BR>
<P>
<HR>

<P></P>_______________________________________________<BR>NZ Borland Developers 
Group - Delphi mailing list<BR>Post: delphi@delphi.org.nz<BR>Admin: 
http://delphi.org.nz/mailman/listinfo/delphi<BR>Unsubscribe: send an email to 
delphi-request@delphi.org.nz with Subject: unsubscribe</BODY></HTML>