Главная страница
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.027 c
4-83069
svv
2002-10-14 19:19
2002.11.25
Необходимо удалить несколько записей из реестра...


3-82670
Hawk2
2002-11-06 18:49
2002.11.25
Картинки в БД.


1-82769
Diogen
2002-11-14 10:59
2002.11.25
Как закрыть модальную форму


1-82688
bmai
2002-11-14 05:36
2002.11.25
Как извлечь иконку из MessageDlg?


1-82760
Таня
2002-11-15 14:31
2002.11.25
строки