Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как реализовать поиск в ehlib с помощью ADOQuery? 
:(
    Опции темы
delphi_
Дата 12.12.2006, 19:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 140
Регистрация: 30.11.2006

Репутация: нет
Всего: -1



Использую ADO и ACCESS

Есть вот такая вот простенькая форма...

user posted image

Как реализовать поиск в ehlib с помощью ADOQuery (или нужно TQuery)? (за исключением встроенного CTRL+F)

Сделал пока простое событие онклик (не использую комбобоксы)
Код

begin
ADOQuery1.close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.text:='SELECT * from радиодетали WHERE Пасп_Номер = 9344';
ADOQuery1.Open;
end;


Реакции-никакой.Что я делаю не так ?
PM MAIL   Вверх
TaNK
Дата 12.12.2006, 20:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 669
Регистрация: 29.10.2006
Где: Краснодар

Репутация: нет
Всего: 1



а методы Locate and Lookup не подходят тебе?


--------------------

Oracle 11.2.0.3.0
FireBird 1.0-2.5


PM MAIL ICQ   Вверх
Rodman
Дата 12.12.2006, 20:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 22
Всего: 122



твой запрос с чем связан???

Мож просто надо сделать Refresh гриду...
PM MAIL WWW Skype GTalk YIM MSN   Вверх
delphi_
Дата 12.12.2006, 22:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 140
Регистрация: 30.11.2006

Репутация: нет
Всего: -1



Цитата(TaNK @ 12.12.2006,  20:10)
а методы Locate and Lookup не подходят тебе?


Refresh

Буду благодарен если поясните как ими пользоваться...и как имя пользоватя имею куча комбобоксов,чтобы можно было выбрать параметр

как понять с чем связан?с главной таблицей
Рефреш?как его делать то?=) чета я не вижу такова св-ва
PM MAIL   Вверх
TaNK
Дата 12.12.2006, 22:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 669
Регистрация: 29.10.2006
Где: Краснодар

Репутация: нет
Всего: 1



Цитата(delphi_ @ 12.12.2006,  22:05)
Цитата(TaNK @ 12.12.2006,  20:10)
а методы Locate and Lookup не подходят тебе?


Refresh

Буду благодарен если поясните как ими пользоваться...и как имя пользоватя имею куча комбобоксов,чтобы можно было выбрать параметр

как понять с чем связан?с главной таблицей
Рефреш?как его делать то?=) чета я не вижу такова св-ва

Код

TLocateOptions SearchOptions;
    ADOTable1->Locate("Fam",Edit9->Text,SearchOptions<<loCaseInsensitive); // Название поля по которому ищется что-то, Edit9 - сюда что-то вводится

Refresh
Код

.........какие - то операторы
 ADOQuery1->ExecSQL();
 ADOTable1->Refresh();



--------------------

Oracle 11.2.0.3.0
FireBird 1.0-2.5


PM MAIL ICQ   Вверх
Savek
Дата 13.12.2006, 11:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 355
Регистрация: 10.4.2006
Где: Воронеж

Репутация: 7
Всего: 7



Locate применяешь к тому набору данных, который отбражается в гриде.
Например если утебя связка DBGrid1->DataSource1->ADOQuery1 топоиск делается так
Код


if ADOQuery1.Locate('Пасп_Номер',9344,[]) then
//найден
else
//не найден


PM MAIL   Вверх
delphi_
Дата 13.12.2006, 22:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 140
Регистрация: 30.11.2006

Репутация: нет
Всего: -1



Код

procedure TForm1.Button3Click(Sender: TObject);
begin
ADOQuery1.close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from ðàäèîäåòàëè where Ïàñï_Íîìåð=9344');
ADOQuery1.Active:=true;
ADOQuery1.ExecSQL;
ADOTAble1.Refresh;
end;

рефреш не помог


Код

if ADOQuery1.Locate('Пасп_Номер',9344,[]);


Ругаеться-ADOQuery1: Cannot perform this action on closed dataset smile 


черт,а нужно то доделать поиски печать результатов поиска...и все готово почти.. smile  так сказать,Неужели нет таких статей?..
PM MAIL   Вверх
Akella
Дата 14.12.2006, 09:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Цитата(delphi_ @  13.12.2006,  22:49 Найти цитируемый пост)
Ругаеться-ADOQuery1: Cannot perform this action on closed datase

неужели не догадаться, что таблица закрыта, а?

Код

ADOQuery1.open;
ADOQuery1.Locate('Пасп_Номер',9344,[]);


открой переводчик и переведи это: Cannot perform this action on closed dataset    smile  smile  smile 
PM MAIL   Вверх
Savek
Дата 14.12.2006, 10:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 355
Регистрация: 10.4.2006
Где: Воронеж

Репутация: 7
Всего: 7



Цитата(delphi_ @  13.12.2006,  22:49 Найти цитируемый пост)
Ругаеться-ADOQuery1: Cannot perform this action on closed dataset  

Датасет закрыт, а в гриде данные отображаются?
Похоже не в том датасете ищещ... 
PM MAIL   Вверх
Akella
Дата 18.12.2006, 17:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Цитата(Savek @  14.12.2006,  10:13 Найти цитируемый пост)
Датасет закрыт, а в гриде данные отображаются?


тогда работай так:

Код

DBGrig1.DataSource.DataSet.close;
(DBGrig1.DataSource.DataSet as TAdoQuery).Sql.Add('');
DBGrig1.DataSource.DataSet.open;


ну ты понял...
PM MAIL   Вверх
Vas
Дата 18.12.2006, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 830
Регистрация: 29.6.2005
Где: Stavropol region

Репутация: 23
Всего: 28



delphi_, а может проще использовать STFilter библиотеки EhLib? Раз у тебя через запросы не вяжется?


--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
PM MAIL   Вверх
delphi_
Дата 19.12.2006, 17:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 140
Регистрация: 30.11.2006

Репутация: нет
Всего: -1



Просто если будит sql то проще объяснять преподам чего дак как происходит-они не поймут
PM MAIL   Вверх
Mephisto
Дата 20.12.2006, 10:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Волкъ
***


Профиль
Группа: Завсегдатай
Сообщений: 1818
Регистрация: 27.8.2003
Где: Питер

Репутация: нет
Всего: 34



delphi_, начнем с того что твой:
Код
procedure TForm1.Button3Click(Sender: TObject);
begin
ADOQuery1.close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from ðàäèîäåòàëè where Ïàñï_Íîìåð=9344');
ADOQuery1.Active:=true;
ADOQuery1.ExecSQL;
ADOTAble1.Refresh;
end;

Должен быть:
Код
procedure TForm1.Button3Click(Sender: TObject);
begin
ADOQuery1.close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from ðàäèîäåòàëè where Ïàñï_Íîìåð=9344');
ADOQuery1.Active:=true;
ADOQuery1.Open;
ADOTAble1.Refresh;
end;[/

А во вторых, насколько я знаю, в Access нужно брать все названия в одинарные кавычки.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0566 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.