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

Вниз

InterBase...   Найти похожие ветки 

 
$hade   (2002-01-24 15:46) [0]

Народ! Подскажите PLZ! Есть приложение работающее с Interbase...
перед подключением вводим пароль в свою форму...подключаемся...если пароль неправильный - снова показываем форму - снова воодим...и так пока не введем правильно или не нажмем отмену...
тока вот если первый раз ввели неправильно - на второй раз прога вылетает...Access Violation и так далее...
В чем косяк?
и как определить вообще какая ошибка была при подключении? (а то оно на все ругаеца просто - EInterbaseError или чтото подобное)...


 
Fareader   (2002-01-24 17:06) [1]

check:=false;

while not check do
try
database1.connected:=false;
database1.parambyname("user name").asstring:="ff";
database1.parambyname("password").asstring:="ff";
database1.connected:=true;
check:=true;
except
showmessage("пароль неверный!");
//Все остальное (вызов формы, очистка едитов и т.д.) - по вкусу
end;


 
$hade   (2002-01-24 17:12) [2]

ВОТ!!! ИМЕННО ТАК И НЕ РАБОТАЕТ!
то есть в except выводим сообщение...потом снова форму и проверяем пароль и...все...п...причем полный...
если с первого раза правильный парольввести - все нормально работает...


 
Иван Шихалев   (2002-01-24 17:27) [3]

Думаю, проблема где-то в уничтожении/создании формы.


 
Fareader   (2002-01-24 18:44) [4]

Выложи код в студию


 
$hade   (2002-01-25 15:14) [5]

хм...вот код... из файла проекта...
function Logon: word;
begin
Result := 0; // 0 - если все нормально...
if LoginForm.ShowModal = mrOK then
try
with MainForm, IBDataBase1 do
begin
DatabaseName := LoginForm.ComboBox2.Text;
Params.Clear;
Params.Add("USER_NAME=" + LoginForm.ComboBox1.Text);
Params.Add("password=" + LoginForm.Edit1.Text);
LoginPrompt := false;
Query1.Open; // при открытии запроса автоматом будет подключаться Database....
end;
except
on EIBInterBaseError do
begin
MessageDlg(" Bad Username or password. " + #10#13 + " Access Denied!", mtError, [mbOk], 0);
logon; // вот тут снова вызываем рекурсивно...))
end;
end
else
Result := 1;
end;

begin
Application.Initialize;
Application.Title := "**********";
Application.CreateForm(TMainForm, MainForm);
Application.CreateForm(TLoginForm, LoginForm);
if Logon = 0 then
begin
Application.CreateForm(... );
...
Application.Run;
end
else
Application.Terminate;
end.


 
Fareader   (2002-01-25 17:06) [6]

Подожди а где еще раз

Application.CreateForm(TLoginForm, LoginForm);

????

Ты же второй раз форму не нарисовал, а функцию вызываешь.
лучше не так сделай.

Положи на LoginForm IBDataBase1 и обрабатывай коннект прямо на клике этой кнопки и пока не введут правильный пароль или не откажутся от своих притязаний - форму не закрывай.
На обаботчик


 
Desdechado   (2002-01-25 17:31) [7]

и что это за хитрый стиль - рекурсивно вызывать логон?!?!
тебе ж Fareader © (24.01.02 17:06) все показал - обычный цикл, никаких извратов. в нем и форму показывай, и обработку ошибки делай.



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

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

Наверх




Память: 0.46 MB
Время: 0.004 c
1-66554
Alex86
2002-02-05 10:34
2002.02.21
Как создать форму


14-66649
Сергей Иванон
2001-12-30 12:03
2002.02.21
Помогите


3-66475
Dima Kopachev
2002-01-29 01:06
2002.02.21
Как вызвать окно ввода логина и пароля в БД


1-66518
nick_vstu
2002-02-05 03:15
2002.02.21
Глюки LMD


14-66652
Lune
2001-12-29 13:48
2002.02.21
Game Over...:-)





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский