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

Вниз

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

Наверх




Память: 0.46 MB
Время: 0.004 c
1-66547
EsKor
2002-02-05 10:48
2002.02.21
Передача объектов в процедуру/функцию


14-66673
Bizon
2002-01-03 10:04
2002.02.21
Новый год.


1-66570
Max-tiger
2002-02-04 11:55
2002.02.21
Как в RichEdit выравнять текст по ширине?


1-66569
Олег Лаукарт
2002-02-05 16:11
2002.02.21
Как правильно удалить поток


3-66449
ZDN
2002-01-28 15:24
2002.02.21
Глюк отображения при модификации данных на клиенте





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