Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.11.25;
Скачать: [xml.tar.bz2];

Вниз

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

 
Свой   (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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.009 c
3-82595
iNew
2002-11-05 03:58
2002.11.25
В BLOB поле храню фотографии, как сделать чтобы если есть


1-82817
EvgenyDr
2002-11-12 23:10
2002.11.25
Вызов функций DLL из компонента.


8-82876
ODUVAN
2002-08-01 20:25
2002.11.25
Где достать описание TTF шрифтов и как с ними работать?


4-83063
Asteroid
2002-10-14 00:25
2002.11.25
Приостановка чужого процесса/нити


14-82925
BJValentine
2002-11-05 15:19
2002.11.25
Хелп, плиз!!!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский