We&#39;ve porting code to Delphi XE2, and need to change our data access components from third party ODBCExpress which is no longer in business, to dbExpress&#39;s TSQLQuery.<br><br>We have parametrized SQL query such as:<br>

<br>    sSQL :=<br>      &#39;UPDATE ZTestData SET &#39;+<br>      &#39; StringField =?, &#39;+<br>      &#39; IntField = ?, &#39;+<br>      &#39; DecimalField = ?, &#39;+<br>      &#39; BooleanField = ?, &#39;+<br>      &#39; DateTimeField = ?, &#39;+<br>

      &#39; TextField = ? &#39;+<br>      &#39; WHERE UniqueID = 3&#39;;<br><br>if we use the following code:<br><br>var<br>  qry:TSQLQuery;<br>begin<br>  qry.Close;<br>  qry.SQL.Text := sSQL;<br>  ShowMessage(IntToStr(qry.Params.Count));<br>

end;<br><br>It returns 0, so we&#39;re unable to get the bindings working, but if we change sSQL to:<br><br>    sSQL :=<br>
      &#39;UPDATE ZTestData SET &#39;+<br>
      &#39; StringField =:Param1, &#39;+<br>
      &#39; IntField = :Param2, &#39;+<br>
      &#39; DecimalField = ?, &#39;+<br>
      &#39; BooleanField = ?, &#39;+<br>
      &#39; DateTimeField = ?, &#39;+<br>
      &#39; TextField = ? &#39;+<br>
      &#39; WHERE UniqueID = 3&#39;;<br><br>It returns 2.<br><br>It&#39;s going to be a big hassle to change all the SQL queries to the new parameter syntax. Is there anyway for the TSQLQuery to recognize the ? syntax?<br>

<br>I see that DBXCommon.TDBXCommand uses the ? syntax:<br><br><a href="http://www.andreanolanusse.com/en/parameterized-queries-with-dbexpress-dbx-framework/">http://www.andreanolanusse.com/en/parameterized-queries-with-dbexpress-dbx-framework/</a><br>

<br>But it would mean throwing away our code that uses TSQLQuery. What&#39;s the quickest/easiest way to resolve this? What&#39;s the difference between TSQLQuery and TDBXCommand anyway, in terms of what&#39;s relevant to me?<br>

<br>Robo<br><br><br><br>