title: Delphi TClientDataSet Locate problems
body: <p>I'm using <code>Delphi7</code>, <code>MS Vista</code> and <code>Devart's dbExpress</code> drivers (version 4.70). I drop a <code>TSQLConnection</code>, a <code>TSQLTable</code> (<code>tabA</code>), a <code>TDataSetProvider</code>, a <code>TClientDataSet</code>(<code>cdsA</code>), a <code>DataSource</code> and a <code>DBGrid</code>. </p>
  
  <p>I made all the settings via graphical design tool. Everything works fine, as I open <code>cdsA</code>, I can see all the data in the Grid. Here is my code:</p>
  
  <pre><code>procedure TForm1.Button1Click(Sender: TObject);
  var
    fields, values: string;
  begin
    cdsA.Close;
    cdsA.Open;
    fields := 'fielda;fieldb';
    values := Edit1.Text+';'+Edit2.Text;
    cdsA.SetKey;
    cdsA.Locate(fields, values, [loCaseInsensitive]);
  end;
  </code></pre>
  
  <p><code>fieldA</code> and <code>fieldB</code> exists in table and are defined in <code>cdsA.Fields</code> too. When I execute this code the <code>Locate</code> instruction generate exception <code>EVariantInvalidArgError ... Invalid argument</code>. I'm wondering what's wrong. TIA.</p>
  
  <p>Francesco</p>