Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 23.06.2010, 12:46
Аватар для Dead_Gigabit
Dead_Gigabit Dead_Gigabit вне форума
Начинающий
 
Регистрация: 20.10.2009
Адрес: Там где холодно и сыро.... брр
Сообщения: 135
Версия Delphi: Delphi XE
Репутация: 10
Восклицание Сравнение DBgrid и stringrid

Подскажите как сравнить dbgrid и Stringrid на наличие одинаковых записей, сначала по одному, а потом по второму столбцу и при совпадении в обоих столбцах вывести совпадающие записи в Мемо1.
Ответить с цитированием
  #2  
Старый 23.06.2010, 14:41
roamer roamer вне форума
Активный
 
Регистрация: 15.04.2009
Сообщения: 369
Репутация: 93
По умолчанию

DBGrid отображает информацию из какого-то открытого набора данных (например, TQuery).
Ячейки TStringGrid являются "хранилищами" информации "явно".
Поэтому, лучше "бежать" по строкам открытого набора данных и по строкам TStringGrid.
И сравнивать (в зависимости от контекста) содержание полей набора данных и соотв. ячеек TStringGrid.

Типа (простой перебор) :
Код:
Query1.First;
while not Query1.EOF do
 begin
    i:=-1;
    while i<(StringGrid1.RowCount-1) do
      begin
         i:=i+1;
         ...
         здесь сравнение
         ...
    end;
   Query1.Next;
end;
Ответить с цитированием
  #3  
Старый 28.06.2010, 11:08
Аватар для Dead_Gigabit
Dead_Gigabit Dead_Gigabit вне форума
Начинающий
 
Регистрация: 20.10.2009
Адрес: Там где холодно и сыро.... брр
Сообщения: 135
Версия Delphi: Delphi XE
Репутация: 10
По умолчанию

Нет, это-то то понятно, я не знаю как сравнить данные в Tstringrid и в БД в БД около полумиллиона записей а в stringrid тока 181... сам процесс сравнивания, просто здесь нужен SQL а я в нем не силен...
Ответить с цитированием
  #4  
Старый 28.06.2010, 11:47
Black Raider Black Raider вне форума
Местный
 
Регистрация: 31.05.2010
Адрес: Москва
Сообщения: 466
Версия Delphi: 7
Репутация: 40
По умолчанию

Пишем запрос :
Цитата:
Select *
from Таблица
where Поле1=r1
and Поле2=r2

пихаем его в Query.
далее пробегаем по стринггриду в цикле и в теле цикла выполняем Query
Например так:
Цитата:
for i:=0 to кол-во строк в стринг гриде-1 do
begin
query1.active:=false;
query1.parametrs.parambyname('pr1').Value:= Поле1стринггрида;
query1.parametrs.parambyname('pr2').Value:= Поле2стринггрида;
query1.active:=true;
if query1.isEmpty = false then Запись есть;
end;

адаптируйте под свои нужды, сами.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 12:35.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter