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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 10.03.2015, 15:01
Eldar1991 Eldar1991 вне форума
Прохожий
 
Регистрация: 02.03.2015
Сообщения: 21
Версия Delphi: delphi7
Репутация: 10
Вопрос Подсчёт количества символов в ячейке DBGrid

Здравствуйте! Задача следующая: Произвести неполное соответствие каждый с каждым между двумя столбцами двух разных таблиц. Подскажите как наиболее грамотно произвести алгоритм при учете того что значений в обоих столбцах будет очень много (5000-10000). Интересуют первые 7 символов в ячейке, если делать через цикл
Код:
for i:=0 to length(AdoQuery1.Fields.FieldByName('ИД)'+7)
, то выдает ошибку синтаксиса. И то если логически то это только для первого столбца цикл по каждому значению и сравнение его с каждым значением другого столбца который также нужно пропустить по циклу,это очень долго. если брать метод Locate
Код:
If not Form1.DBGrd1.DataSource.DataSet.Locate('¹ ï/ï',Edit1.Text,[])
то как правильно синтаксически указать вместо edit1.text все ячейки столбца? Или третий способ через запрос SQL тогда
Код:
Form1.qry1.SQL.Add('Select 1,2 From 3,4 where (5=6)')
получается довольно быстро но вот как тут реализовать соответствие по первым 10-ти символам?

Последний раз редактировалось Eldar1991, 10.03.2015 в 15:03.
Ответить с цитированием
  #2  
Старый 11.03.2015, 01:35
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,036
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Код:
... where upper(substr(f1,1,6)) = upper(substr(f2,1,6))
Точный синтаксис substr смотри в доке соотв. БД.
Ответить с цитированием
  #3  
Старый 23.03.2015, 19:03
Eldar1991 Eldar1991 вне форума
Прохожий
 
Регистрация: 02.03.2015
Сообщения: 21
Версия Delphi: delphi7
Репутация: 10
Хорошо

Огромное спасибо за наводку. От себя осталось добавить что конкретно на моем примере для БД Access вместо upper и substr используется ucase и MID соответственно. Ещё раз спасибо, тема закрыта.
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter