Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Проверка импортируемых данных на существование


Автор: royun 29.12.2011, 05:08
Добрый день.

Есть код который делает импорт данных из StringGrid в таблицу MS SQL Server 2000

Код

ADODataSet1.DisableControls;
  try
    ADODataSet1.First;
    for iRow := StringGrid2.FixedRows to StringGrid2.RowCount - 1 do begin
    if StringGrid2.Cells[1,iRow] <> '' then
      begin
      ADODataSet1.Insert;
      ADODataSet1['Date'] := StrToDateTime(StringGrid2.Cells[1, iRow]);
      ADODataSet1['AbonentA'] := StringGrid2.Cells[2, iRow];
      ADODataSet1['AbonentB'] := StringGrid2.Cells[3, iRow];
      ADODataSet1['Vremia'] := StringGrid2.Cells[4, iRow];
      ADODataSet1['Dlit'] := StringGrid2.Cells[5, iRow];
      ADODataSet1['Dlit_fakt'] := StringGrid2.Cells[6, iRow];
      ADODataSet1['Vh_trunk'] := StringGrid2.Cells[7, iRow];
      ADODataSet1['Ish_Trunk'] := StringGrid2.Cells[8, iRow];
      ADODataSet1['Prichina'] := StringGrid2.Cells[9, iRow];
      ADODataSet1['Zona'] := StringGrid2.Cells[10, iRow];
      ADODataSet1.Post;
      end;
    end;
  finally
    ADODataSet1.EnableControls;
  end;


Надо осуществить проверку импортируемых данных на существование в таблице.  smile 

Автор: royun 29.12.2011, 07:18
Итак, надо было сделать вот такую проверку хотя бы по двум столбцам:

Код

SELECT Count(*) AS Cnt FROM TableName WHERE Date = :D AND Vremia = :V


Если поле Cnt >0, то такие записи существуют.

Автор: Данкинг 29.12.2011, 10:27
Да можно просто выбрать всё и посмотреть .RecordCount.

Автор: superVad 29.12.2011, 10:58
royun, Заливай все с каким нибудь признаком, а потом делай запрос на дубли. Можно даже запрос на удаление дублей. Это если записей много - АТС какая нибудь городская.
А если относительно мало - можешь и каждую запись проверять перед заливкой.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)