|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
27.11.2009, 21:25 | #1 |
Регистрация: 27.11.2009
Сообщений: 7
|
Много SQL запросов что компьютер подвисает!!
Люди пожалуйста помогите у меня программа продажи билетов, у меня когда форма активна 665 image'ов каждый из них обращается к 3 базам!!!!! Все работает,но это занимает минуты 2-3!! Не подскажите как сделать что бы она быстрей думала!!! Вот текст самого обращение:
var Arr: array [1..665] of TImage; ------------------------------------------------- j:=1; for i:=0 to ComponentCount-1 do //просматриваем if (Components[i] is TImage) then begin //если подходит Arr[j]:=(Components[i] as TImage);//помещаем j:=j+1; end; -------------------------------------------------------- for o:=1 to 35 do begin for t:=1 to 19 do begin sv:=0; with form11.ADOQuery1 do begin Close; SQL.Clear; // удалить текст предыдущего запроса SQL.Add('select * FROM Купленые WHERE (сектор= '+QuotedStr(sektor)+' and ряд= '+inttostr(o)+' and место= '+inttostr(t)+');'); Open; end; if form11.ADOQuery1.RecordCount <> 0 then sv:=sv+1; with form10.ADOQuery1 do begin Close; SQL.Clear; SQL.Add('select * FROM Места WHERE (сектор= '+QuotedStr(sektor)+' and ряд= '+inttostr(o)+' and место= '+inttostr(t)+');'); Open; end; if form10.ADOQuery1.RecordCount <> 0 then sv:=sv+1; with form9.ADOQuery1 do begin Close; SQL.Clear; // удалить текст предыдущего запроса SQL.Add('select * FROM Абонемент WHERE (сектор= '+QuotedStr(sektor)+' and ряд= '+inttostr(o)+' and место= '+inttostr(t)+');'); Open; end; if form9.ADOQuery1.RecordCount <> 0 then sv:=sv+1; if sv=0 then begin if o>1 then i:=((o-1)*19)+t else i:=o*t; Arr[i].Picture.LoadFromFile('0.bmp'); Arr[i].Enabled:=true; Arr[i].Hint:=inttostr(t)+' место '+inttostr(o)+' ряд'; Arr[i].Showhint:=true; end; end; ------------------------------------------------------------------- Пожл люди помогите!!! В программировании я чайник с крышечкой, поэтому пишите пожалуйста понятней!!! |
27.11.2009, 21:45 | #2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
ну и не удивительно!
что ж Вы в цикле творите то?! 665 раз закрываете датасет, формируете запрос (кстати, после формирования он по умолчанию ещё сам парсится на предмент параметров), выполняете запрос к БД, потом обрабатываете результаты!! Так делать, мягко говоря, СТРАННО! Точно надо менять логику работы... получать данные за таблицы (3-х таблиц) и уже на клиенте разбирать... p.s. если расскажите поподробнее условия задачи, запакуете исходники проекта + тестовую БД и выложите это - то можно и более конкретно об изменении логики работы поговорить... |
27.11.2009, 22:09 | #3 |
Регистрация: 27.11.2009
Сообщений: 7
|
Вобщем тема продажи билетов на стадион, где графически изображается 1 сектор (Всего их 45) в котором 665 мест, он проходит по базам ищет это место в базе, если не находит загружает зеленый квадратик, 2 цикла для проверки каждого места их 19 на одном ряду, в секторе их 35!
|
27.11.2009, 23:08 | #4 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
ну я бы сделал так.
выполнил выборку (или выборки - а почему три таблицы то?). потом в цикле прошёлся по всем полученным данным, анализируя каждый полученный результат и закрашивая соответствующее место (кстати, вам не кажется, что рисовать прямо на канве (или хотя бы использовать shape'ы) намного быстрее будет?! |
28.11.2009, 13:05 | #5 |
SQL-коддинг
Участник клуба
Регистрация: 16.01.2009
Сообщений: 1,192
|
да уж - ну и реализация...
если бы еще написал что за субд, то можно было бы попробовать реализовать все запросы через один запрос - портянка со всеми сектора - рядами - местами + необходимые признаки все летать будет |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ограничение кол-ва SQL запросов в BDE ?!!! | Qdesnik | БД в Delphi | 1 | 15.05.2009 17:24 |
Помогите написать несколько SQL запросов | grinch | SQL, базы данных | 12 | 23.03.2009 13:15 |
Написание SQL-запросов | tsergey | Помощь студентам | 9 | 12.02.2009 11:17 |
использование SQL запросов в коде VBA | b00s | Microsoft Office Access | 3 | 26.04.2008 13:40 |
несколько запросов SQL | Arteom | БД в Delphi | 3 | 09.09.2007 23:39 |