ПОМОГИТЕ новичку!!!
От: Pilot2008  
Дата: 09.09.04 06:43
Оценка:
Вот у меня такие вопросы. Сразу говорю — я только-только начал осваивать Дельфи, ещё мало что понимаю. Вообщем я сделал базу данных с помощью Database Desktop. Положил её на форму, всё работает. Но...
1) Как сделать ПОИСК по этой вставленной мною таблице?
2) Как можно сделать, чтобы информацию в таблице можно было распечатывать?
Заранее всем огромной спасибо!!!!!!!
Только напишите всё пожалуйста понятным языком.
Re: ПОМОГИТЕ новичку!!!
От: Vamp Россия  
Дата: 09.09.04 06:53
Оценка: +1
Книгу почитай, ага.
Без обид.
Да здравствует мыло душистое и веревка пушистая.
Re: ПОМОГИТЕ новичку!!!
От: Demiurg  
Дата: 09.09.04 08:03
Оценка:
Здравствуйте, Pilot2008, Вы писали:

P>Вот у меня такие вопросы. Сразу говорю — я только-только начал осваивать Дельфи, ещё мало что понимаю. Вообщем я сделал базу данных с помощью Database Desktop. Положил её на форму, всё работает. Но...

P>1) Как сделать ПОИСК по этой вставленной мною таблице?
P>2) Как можно сделать, чтобы информацию в таблице можно было распечатывать?
P>Заранее всем огромной спасибо!!!!!!!
P>Только напишите всё пожалуйста понятным языком.

Понятным языком написано в доке или книге. Ты же, по всей видимости, ничего из этого не прочел, так что каким бы понятным языком тебе здесь не объясняли, ты все равно не поймешь.
... << RSDN@Home 1.1.4 @@subversion >>
Re[2]: ПОМОГИТЕ новичку!!!
От: Аноним  
Дата: 09.09.04 09:16
Оценка:
Здравствуйте, Demiurg, Вы писали:

D>Здравствуйте, Pilot2008, Вы писали:


P>>Вот у меня такие вопросы. Сразу говорю — я только-только начал осваивать Дельфи, ещё мало что понимаю. Вообщем я сделал базу данных с помощью Database Desktop. Положил её на форму, всё работает. Но...

P>>1) Как сделать ПОИСК по этой вставленной мною таблице?
P>>2) Как можно сделать, чтобы информацию в таблице можно было распечатывать?
P>>Заранее всем огромной спасибо!!!!!!!
P>>Только напишите всё пожалуйста понятным языком.

D> Понятным языком написано в доке или книге. Ты же, по всей видимости, ничего из этого не прочел, так что каким бы понятным языком тебе здесь не объясняли, ты все равно не поймешь.


Зря вы так...вот читал, но всё равно не нашёл ничего про поиск....
Re[3]: ПОМОГИТЕ новичку!!!
От: DarkMaster Украина http://www.bdslib.at.ua
Дата: 09.09.04 10:05
Оценка: +1
Здравствуйте, Аноним, Вы писали:

А>Зря вы так...вот читал, но всё равно не нашёл ничего про поиск....


Методы — Locate(), Lookup().. Можно еще Filter использовать.
WBR, Dmitry Beloshistov AKA [-=BDS=-]
Re[3]: ПОМОГИТЕ новичку!!!
От: Demiurg  
Дата: 09.09.04 10:05
Оценка:
Здравствуйте, <Аноним>, Вы писали:

P>>>Только напишите всё пожалуйста понятным языком.


D>> Понятным языком написано в доке или книге. Ты же, по всей видимости, ничего из этого не прочел, так что каким бы понятным языком тебе здесь не объясняли, ты все равно не поймешь.


А>Зря вы так...вот читал, но всё равно не нашёл ничего про поиск....


А про SQL там что-нить есть? Вот его и юзай для поиска.
... << RSDN@Home 1.1.4 @@subversion >>
Re: ПОМОГИТЕ новичку!!!
От: Nvisa Россия  
Дата: 09.09.04 12:11
Оценка:
Здравствуйте, Pilot2008, Вы писали:

P>1) Как сделать ПОИСК по этой вставленной мною таблице?


Начсет поиска ответы уже были. Может быть Вам подойдет фильтрация по заданному критерию.
Подключите к Database1 запрос Query1 и изменяйте его для фильтрации записей по требуемому критерию. Источник DSource2Query1 передает информацию другим компонентам Вашей формы.

Например:

//*****************************************************************
procedure TF_SCSITpractic.FilterResetExecute(Sender: TObject);
// Поиск строк, включающих текст из EditFindText.Text
// в поле TXT Query1
//*****************************************************************
begin
// Деактивируем запрос
DSource2Query1.Enabled := false;
Query1.Active := false;
Query1.close;
Query1.SQL.Clear; // Стираем любой предыдущий запрос


qas2 := '%'+trim(EditFindText.Text)+'%'

// Записываем новый запрос
qas1 := '';
qas1:=qas1+'SELECT ';
qas1:=qas1+'DIR, ID, FOLDER, MARKER, TXT, M1, FILES, ';
qas1:=qas1+'TXTNAME, TXTNAME2, TEL, ADR, DOCTYPE, DOCDATE, ';
qas1:=qas1+'K1FIRMA, K1START, K1STOP, K1RESULT, K2FIRMA, K2START, K2STOP, K2RESULT, ';
qas1:=qas1+'K3FIRMA, K3START, K3STOP, K3RESULT, K4FIRMA, K4START, K4STOP, K4RESULT, ';
qas1:=qas1+'(TXT+'+chr(39)+' '+chr(39)+'+TXTNAME+'+chr(39)+' '+chr(39)+'+TXTNAME2) AS FIO ';
qas1:=qas1+'FROM scsitpract ';

if Length(qas2) > 0
then
begin
qas1:=qas1+'WHERE ';
qas1:=qas1+' upper(TXT+TXTNAME+TXTNAME2) LIKE upper(';
qas1:=qas1+chr(39);
qas1:=qas1+qas2;
qas1:=qas1+chr(39)+') ';
end

else
begin
// оператор WHERE не определяется
end

;
qas1:=qas1+'ORDER by TXT ';


Query1.SQL.Add(qas1); // Записываем новый запрос

// Выполняем запрос и открываем набор данных
Query1.Open;
Query1.Active := true;
DSource2Query1.Enabled := true;

end;


Код выдергнут из реально работающего приложения, так что потребуется коррекция под Вашу задачу. Время реакции на таблице в на 5000 записей — менее 1 секунды, 350000 записей — порядка 10 секунд. Медленно, но для человека приемлемо.

Успехов.
Виктор.

PS Отредактируйте свои личные данные, а то как-то неудобно обращаться к пустоте. И еще — точнее формулируйте тему. На Вашу тему я наткнулся чисто случайно ...
Re[2]: ПОМОГИТЕ новичку!!!
От: linker Россия  
Дата: 09.09.04 12:51
Оценка:
Здравствуйте, Nvisa, Вы писали:

N>Здравствуйте, Pilot2008, Вы писали:


P>>1) Как сделать ПОИСК по этой вставленной мною таблице?


N>Начсет поиска ответы уже были. Может быть Вам подойдет фильтрация по заданному критерию.

N>Подключите к Database1 запрос Query1 и изменяйте его для фильтрации записей по требуемому критерию. Источник DSource2Query1 передает информацию другим компонентам Вашей формы.

N>Например:


N>
N>//*****************************************************************
N>procedure TF_SCSITpractic.FilterResetExecute(Sender: TObject);
N>// Поиск строк, включающих текст из EditFindText.Text
N>// в поле TXT Query1
N>//*****************************************************************
N>begin
N>// Деактивируем запрос
N>DSource2Query1.Enabled := false;
N>Query1.Active := false;
N>Query1.close;
N>Query1.SQL.Clear; // Стираем любой предыдущий запрос


N>qas2 := '%'+trim(EditFindText.Text)+'%'

N>// Записываем новый запрос
N>qas1 := '';
N>qas1:=qas1+'SELECT ';
N>qas1:=qas1+'DIR, ID, FOLDER, MARKER, TXT, M1, FILES, ';
N>qas1:=qas1+'TXTNAME, TXTNAME2, TEL, ADR, DOCTYPE, DOCDATE, ';
N>qas1:=qas1+'K1FIRMA, K1START, K1STOP, K1RESULT, K2FIRMA, K2START, K2STOP, K2RESULT, ';
N>qas1:=qas1+'K3FIRMA, K3START, K3STOP, K3RESULT, K4FIRMA, K4START, K4STOP, K4RESULT, ';
N>qas1:=qas1+'(TXT+'+chr(39)+' '+chr(39)+'+TXTNAME+'+chr(39)+' '+chr(39)+'+TXTNAME2) AS FIO ';
N>qas1:=qas1+'FROM scsitpract ';

N>if Length(qas2) > 0
N>then
N>begin
N>qas1:=qas1+'WHERE ';
N>qas1:=qas1+' upper(TXT+TXTNAME+TXTNAME2) LIKE upper(';
N>qas1:=qas1+chr(39);
N>qas1:=qas1+qas2;
N>qas1:=qas1+chr(39)+') ';
N>end

N>else
N>begin
N>// оператор WHERE не определяется
N>end

N>;
N>qas1:=qas1+'ORDER by TXT ';


N>Query1.SQL.Add(qas1); // Записываем новый запрос

N>// Выполняем запрос и открываем набор данных
N>Query1.Open;
N>Query1.Active := true;
N>DSource2Query1.Enabled := true;

N>end;
N>


N>Код выдергнут из реально работающего приложения, так что потребуется коррекция под Вашу задачу. Время реакции на таблице в на 5000 записей — менее 1 секунды, 350000 записей — порядка 10 секунд. Медленно, но для человека приемлемо.


N>Успехов.

N>Виктор.

N>PS Отредактируйте свои личные данные, а то как-то неудобно обращаться к пустоте. И еще — точнее формулируйте тему. На Вашу тему я наткнулся чисто случайно ...



www.ehlib.com все что ты хочешь в одном флаконе, но книги все равно придется читать
Re[3]: ПОМОГИТЕ новичку!!!
От: Sergey__ Россия  
Дата: 11.09.04 13:48
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Зря вы так...вот читал, но всё равно не нашёл ничего про поиск....

а что это за уникальная книга ?
... << RSDN@Home 1.1.4 @@subversion >>
Sergey
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.