Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.05.2009, 00:40   #1
Wolverine
Пользователь
 
Регистрация: 24.05.2009
Сообщений: 11
Восклицание Помогите с запросом ADOQuery в Delphi 7

Суть проблемы такова: у мя есть б.д. в Access'e. В табл. Цвет (Код, Цвет, Время, Дата) - Код и Время - ключи.
Мне необходимо в Delphi реализовать запрос на выборку по Коду всех записей, которые удовлетворяют интервалу времени, которое вводит пользователь.
Получается, на форме в Delphi, помещаем DBLookupComboBox1, в котором мы будем выбирать значение Кода, 2 DBEdit - куда должны заноситься значения времени, DBGrid1 - для просмотра содерж. табл. ADOConnection1, DataSource1 и ADOTable1 - для самой связи с б.д. и её содержимым. А как вот реализорать - не знаю!((( Ни разу не делал.... а надо ППЦ срочно!!!
Помогите плиииз, кто разбирается. Напишите примерно как выглядит запрос... и если не сложно выложите исходник или скиньте мне на мыло. Заранее очень признателен!)
Wolverine вне форума Ответить с цитированием
Старый 24.05.2009, 01:20   #2
maLoy*508
Форумчанин
 
Аватар для maLoy*508
 
Регистрация: 28.03.2008
Сообщений: 672
По умолчанию

Цитата:
Напишите примерно как выглядит запрос...
что бы написать как выглядит запрос нужно знать структуру Вашей бд, но если Вам надо от балды что нибудь то вот:
Код:
SELECT TAR_SET.TAR_KOEF, SOTRUDNIKI.TAB_NOM, SOTRUDNIKI.FIO {поля которые выбираем}
FROM SOTRUDNIKI {таблица из которой выбираем}
INNER JOIN TAR_SET ON (SOTRUDNIKI.ID_TARSET = TAR_SET.ID_TARSET) {таблица Sotrudniki связана c таблицей Tar_set по Id_tarset}
WHERE
(SOTRUDNIKI.ID_SOTR = '+FloatToStr(DbLookUpListBox1.KeyValue)+'){условие отбора}
maLoy*508 вне форума Ответить с цитированием
Старый 24.05.2009, 01:20   #3
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Еще раз. DB-компоненты либо отображают сожержимое записи, либо ее изменяют (DBEdit как раз для этого).
Задавать интервал времени вы должны ПРОСТЫМИ, не DB-компонентами, а вот введенные туда значения передавать в качестве параметров в ваш запрос.
Вот один из примеров выборки по интервалу:
http://programmersforum.ru/showthrea...E5%F0%E2%E0%EB
mihali4 вне форума Ответить с цитированием
Старый 24.05.2009, 12:08   #4
Wolverine
Пользователь
 
Регистрация: 24.05.2009
Сообщений: 11
По умолчанию

Цитата:
Сообщение от maLoy*508 Посмотреть сообщение
что бы написать как выглядит запрос нужно знать структуру Вашей бд...
у мя всего одна таблица, куда я сохраняю данные. А насчёт скинутого кода, конечно спс за него, но как на SQL будет запрос я знаю, я не знаю как именно написать в Delphi... я имею ввиду правильность кода. Если бы у меня был пример готового простого запроса на выборку из access'ной б.д. в Delphi, я бы смог его продебагить, разобраться что к чему и переделать так как мне надо.
Wolverine вне форума Ответить с цитированием
Старый 24.05.2009, 12:36   #5
Wolverine
Пользователь
 
Регистрация: 24.05.2009
Сообщений: 11
По умолчанию

Цитата:
Сообщение от mihali4 Посмотреть сообщение
вот это уже интересно, ща буду разбираться, спс)
Wolverine вне форума Ответить с цитированием
Старый 24.05.2009, 13:00   #6
Wolverine
Пользователь
 
Регистрация: 24.05.2009
Сообщений: 11
По умолчанию

а что для ADOQuery надо установить в Property, кроме Connection - ADOConnection1&?
Wolverine вне форума Ответить с цитированием
Старый 24.05.2009, 16:25   #7
maLoy*508
Форумчанин
 
Аватар для maLoy*508
 
Регистрация: 28.03.2008
Сообщений: 672
По умолчанию

смотря для чего используете, впринципе, больше можно ничего не устанавливать... только active - true или false... хотя лучше это делать программно
maLoy*508 вне форума Ответить с цитированием
Старый 24.05.2009, 16:37   #8
Wolverine
Пользователь
 
Регистрация: 24.05.2009
Сообщений: 11
По умолчанию

procedure TForm1.BitBtn1Click(Sender: TObject);
var Present1: TDateTime;
Present2: TDateTime;
two: TADOQuery;
begin
two.Active:=false;
Present1:= DateTimePicker2.Date;
Present2:= DateTimePicker3.Date;
two.SQL.Clear;
two.SQL.Add('select *);
two.SQL.Add('from Цвет');
two.SQL.Add('WHERE Время BETWEEN '+''''+FormatDateTime( 'hh.mm.ss', Present1)+'''');
two.SQL.Add('AND '+''''+FormatDateTime( 'hh.mm.ss', Present2)+'''');
//two.CLOSE;
//two.Open;
two.Active:=true;

а вот что дальше то, как вывести результат запроса в DBGrid1 (наверное сюда луче будет выводить)?

//form1.DBGrid1.Lines:=two.SQL;
end;

шото кажется у мя уже мозки плавятся от этого ADO...
Wolverine вне форума Ответить с цитированием
Старый 24.05.2009, 16:44   #9
Sparky
Участник клуба
 
Аватар для Sparky
 
Регистрация: 15.05.2009
Сообщений: 1,222
По умолчанию

А вы DAtaSourse используете у DBGrid?
Единственное, что ограничивает полет мысли программиста-компилятор
Sparky вне форума Ответить с цитированием
Старый 24.05.2009, 16:49   #10
Wolverine
Пользователь
 
Регистрация: 24.05.2009
Сообщений: 11
По умолчанию

да в DBGrid стоит в Events'е DataSource - DataSource1.
Я ж если ADOTable1.Active ставлю true - я вижу в DBGrid1 содержимое своей таблицы)
Wolverine вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с запросом euronymous SQL, базы данных 12 18.03.2012 05:24
Помогите с запросом NATAHA Microsoft Office Access 2 08.05.2009 15:17
Oracle проблема с запросом из delphi nimf БД в Delphi 1 27.10.2008 15:55
Помогите с запросом Viper666 Microsoft Office Access 2 14.05.2008 22:35
Помогите с запросом Айвенго Microsoft Office Access 3 08.05.2008 09:07