Показать сообщение отдельно
  #4  
Старый 03.10.2008, 13:08
w1zard w1zard вне форума
Прохожий
 
Регистрация: 04.07.2008
Сообщения: 26
Репутация: 10
По умолчанию

Хотя, всё равно глючно работало. После трёх часов мучений пришёл к выводу, что надёжнее будет просто перебором. Вот даже кусочек кода, в котором показано это:

Код:
Procedure TForm10.Ochered(Rayon_name:String);
var
st_count1,qx:integer;
Begin
 Table2.Active:=True;
 Table2.Open;
 Table2.First;
 st_count1:=Form1.ListBox1.Items.Count-1; // Получаем реальное количество строк в ListBox'e.
  For qx:=0 to st_count1 do
   begin

    If Table2.Locate('ID',Form1.ListBox1.Items.Strings[qx],[loCaseInsensitive]) then // При условии, что данной строки ещё нет в базе выполняем:
    begin
    Table2.Edit;
    Table2.Fields[0].AsString:=Form1.ListBox1.Items.Strings[qx];// Счётчик цикла определяет индекс строки
    Table2.Fields[1].AsString:='NNN';
    Table2.Fields[3].AsString:=IntToStr(qx+1); //Для реального значения увеличиваем индекс на 1
    Table2.Post;
    Table2.FlushBuffers;
    end
      else // В случае, если такая строка уже есть в базе
        begin
        Table2.Append;
        Table2.Fields[0].AsString:=Form1.ListBox1.Items.Strings[qx];
        Table2.Fields[1].AsString:='NNN';
        Table2.Fields[3].AsString:=IntToStr(qx+1);
        Table2.Post;
        Table2.FlushBuffers;
        end;


  end;


 Table2.FlushBuffers;
 Table2.Close;
 Table2.Active:=False;
 end;


end;

Вызывать процедуру при событии ListBox1EndDrag.

Вроде всё так, может кому-то понадобится
Ответить с цитированием