OleDBCommandBuilder problem

whois
Дата: 29.03.2006 11:36:03
Не поможете с проблемой использования OleDBCommandBuilder?
var
  _Instance: System.Data.DataSet;
  _dataAdapter: System.Data.OleDB.OleDbDataAdapter;
  _commandBuilder: System.Data.OleDB.OleDBCommandBuilder;
  _connection: System.Data.OleDb.OleDbConnection;
  _selectCommand, uC: System.Data.OleDb.OleDbCommand;
begin
  if not Assigned(_Instance) then
  begin
    _connection := GetConnection; //коннек
    _selectCommand := System.Data.OleDb.OleDbCommand.Create(
      'SELECT * FROM odt_test t WHERE t.id = ?',
      _connection
    );

    with _selectCommand.Parameters.Add('', oleDbType.VarChar) do
    begin
      Value :=  Self.ID;
      Size := 200;
    end;

    _Instance := System.Data.DataSet.Create;

    _dataAdapter := System.Data.OleDb.OleDbDataAdapter.Create(_selectCommand);
    _dataAdapter.Fill(_Instance);


    _commandBuilder := System.Data.OleDB.OleDBCommandBuilder.Create(_dataAdapter);
    // для проверки  
    uC := _commandBuilder.getUpdateCommand;
end;

Последняя строчка генирирует исключение:
System.InvalidOperationException: Динамическое создание SQL для UpdateCommand не поддерживается для SelectCommand, не возвращающего никакой информации о столбце ключей.

Везде, в том числе и на sql.ru, пишут, что вот мол надо добавить PK в табличку. Так на это крайне недвусмысленно намекает исключение, поэтому, естественно, в моей табличке он есть (поле ID).

Только, пожалуйста, не советуйте не использовать OleDBCommandBuilder, а прописать команды инсерта, апдейта и делита явно )) это на всякий случай ))