Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.11.25;
Скачать: CL | DM;

Вниз

Поиск   Найти похожие ветки 

 
Свой ©   (2002-11-02 18:52) [0]

Простите возможно это очень легко но я просто не связываюсь с БД но вот пришлось!
Есть таблица парадокс там есть поля mail, log, pas; Так вот мне надо как нить найти сначало запись в поле mail (полное сходство).
Вот а потом надо в этой записи сравнить поля log и pas как это осуществить?


 
MsGuns ©   (2002-11-02 22:24) [1]

Господи, когда же мы научимся вопросы-то задавать ?
Не критикую синтаксис, но СМЫСЛ ?
Что значит "полное сходство" ? Поле mail НД должно соответствовать некоторому задаваемому или известному заранее образцу ? Откуда берется образец ? Вводит в контрол юзер ? Берется из другой таблицы ? Падает с неба как манна небесная ?

То же самое и по log/pas. Их надо друг с другом сравнивать или опять же с некоторыми значениями (см.выше) ?

По поводу методов поиска. Их немало, все зависит от контекста. Если это:
- разовая операция, то лучше всего подойдет SQL-запрос типа
SELECT log, pas
FROM MyTable
WHERE (mail=:pmail) and (log=pas)

- поиск в текущем курсоре на гриде делается методом Locate или FindKey. В некоторых случаях подойдет LookUp

- если выбрать из текущего курсора такие записи и только их показывать в гриде, то фильтрация (св-ва Filter и Filtered)




 
Свой ©   (2002-11-02 22:58) [2]

Что значит "полное сходство" --полное чтоб типа все совпало до символа !!
откуда берется пользователь сам вводит данные (конкретно mail) и я его ищу в базе т.е в таблице а ппотом на это mail я сравниваю введенный пароль и логий и у найденой записи!!!!

Поис просходит часто причет поиск в файле и никуда ни на грид и нигде это не видно. сначало надо найти сходство в mail а потом типа проверить уже лог и пас у этой записи!


 
oss ©   (2002-11-02 23:20) [3]

попробуй использовать фильтры на датасете,
это не поиск через запрос, но тоже вариант


 
MsGuns ©   (2002-11-03 13:24) [4]

>Свой © (02.11.02 22:58)

Понятие "сходство" весьма широко. В отношении же сущностей БД, а именно значений полей, более удобоваримо понятия "совпадение", "частичное совпадение", "регистронечувствительное совпадение" и пр.

В данном случае, к я понял, есть некая физ.таблица (неотображаемая в интерфейсе), хранящая логины и мылы юзеров. Прога должна, получив от сидящего за компом юзверя мыло и логин, быстренько найти запись о нем в таблице и сравнить его лигин с тем, что хранится в табле. Если так, то это делается безо всякого поиска, простым запросом:

procedure TForm1.Form1Button1Click(Sender: TObject);
begin
if qu.Active then
qu.Close;
qu.SQL.Clear;
qu.SQL.Add("SELECT COUNT(*) FROM TableMail");
qu.SQL.Add(" WHERE (mail="""+Form1.edMail.Text+""") and (log="""
+Form1.edLog.Text+""") and (pas="""+Form1.edPas.Text+""")");
try
qu.Prepare;
gu.Open;
except
ShowMessage("Ошибка доступа к реестру эл.почты");
exit;
end;
if qu.RecordCount=0 then
ShowMessage("Не известен адрес или неверен логин/пароль");
else
begin
... // Обслуживание
end;
qu.Close;
end;


или

procedure TForm1.Form1Button1Click(Sender: TObject);
begin
if qu.Active then
qu.Close;
qu.SQL.Clear;
qu.SQL.Add("SELECT COUNT(*) FROM TableMail");
qu.SQL.Add(" WHERE mail="""+Form1.edMail.Text+""";
try
qu.Prepare;
gu.Open;
except
ShowMessage("Ошибка доступа к реестру эл.почты");
exit;
end;
if qu.RecordCount=0 then
begin
ShowMessage("Не известен адрес ");
exit;
end;
if qu.FieldByName("log").AsString<>Form1.edLog.Text then
begin
ShowMessage("Не верно задан логин");
exit;
end;
if qu.FieldByName"pas").AsString<>Form1.edPas.Text then
begin
ShowMessage("Не верно указан пароль");
exit;
end;
// Обслуживание
qu.Close;
end;




 
MsGuns ©   (2002-11-03 13:31) [5]

Пардон, для второго случая перед строкой сравнения полей log и pas надо позиционировать первую запись:

qu.First;

Но это, конечно, если мылы уникальные. Если по одному адресу м.б.несколько логинов, тогда лучше первый вариант или второй, но с Locate по рез.НД (qu) сначала по log. Если найдет, то простое сравнение pas этой же записи с указанным в TEdit


 
Свой ©   (2002-11-04 21:34) [6]

Большое Спасибо !!!


 
MsGuns ©   (2002-11-04 21:40) [7]

пжлст 8)))



Страницы: 1 вся ветка

Текущий архив: 2002.11.25;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.018 c
4-83080
BFG-2000
2002-09-12 19:58
2002.11.25
Приведите пример использования WM_SETFONT


14-82962
AlexKniga
2002-11-06 17:36
2002.11.25
Я сдал кадмин!!!


1-82783
Andrey V
2002-11-13 15:17
2002.11.25
Fatal Errors L????


1-82866
bondik
2002-11-14 15:57
2002.11.25
вопос


3-82620
Viktor1
2002-11-05 13:43
2002.11.25
Объясните разницу ADO и DAO!!!