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

Вниз

Соединение с БД Oracle   Найти похожие ветки 

 
Elena_K   (2002-08-20 07:20) [0]

Имя пользователя, пароль берутся из соответствующих полей
NameEdit, PwdEdit формы DialogForm.
При нажатии на кнопки "OK" "Cancel" должны возникать события,
соответствующие соединению с БД.
Как отследить все возникающие события в этом случае,
например - успешное,неуспешное соединение и т.п.?


 
Alexandr   (2002-08-20 08:00) [1]

ну что за утро сегодня...
у всех какие-то несвязанные мысли, которые они пытяются невнятно изложить на бумаге...
И вроде не понедельник ведь :)


 
Elena_K   (2002-08-20 08:21) [2]


Краткость - сестра таланта:-)
Ведь мастеру никак все подвластно или понедельник дает о себе знать:-)


 
Elena_K   (2002-08-20 08:27) [3]

Конкретный пример: при попытке соединиться с БД Oracle могут
возникнуть две возможные ситуации:
1) при успешном соединении выдается сообщение "Соединение установлено";
2) при неуспешном соединении генерировалась ошибка со стороны Delphi "Вы не вошли в сеть"
Как отследить такое событие?
P.S. Используется компонент TDataBase.


 
Alexandr   (2002-08-20 08:27) [4]

я опять не понял :(


 
Alexandr   (2002-08-20 08:30) [5]

а вот теперь понял.

try
Database1.Open;
ShowMessage(" вы удачно подключились к базе данных");
except
on e:exception do ShowMessage(" подключение к базе данных неуспешно"#10#13+E.message);
end;


 
Elena_K   (2002-08-20 08:37) [6]

Все осталось без изменений:
т.е. в переменные UsrName,UsrPwd записаны к примеру некорректные записи и при попытке подклчиться к БД генерируется ошибка типа
ORA-01012:Вы не вошли в систему.


 
Alexandr   (2002-08-20 08:40) [7]

конечно ошибка сгенерируется, но она перехватится в except и там с ней уже можно сделать все что захочешь.
У тебя не Delphi останавливается на исключении?


 
Elena_K   (2002-08-20 09:18) [8]

Технический вопрос:не отобразились последние ответы


 
Alexandr   (2002-08-20 09:19) [9]

чего?


 
Elena_K   (2002-08-20 09:29) [10]

В except не перехватывается событие сразу Delphi пишет свое сообщение.


 
dimis   (2002-08-20 09:35) [11]


> Elena_K ©

дебагер надо отключить или запускать екзешкик не из под дельфи


 
Alexandr   (2002-08-20 09:36) [12]

ага или в дельфи птичку убрать на Break On Exception.

И делов то...
А такой флейм раздули :)


 
Elena_K   (2002-08-20 09:44) [13]

Кроме моего сообщения прибавляется еще таже самая ошибка в этом же окне, как ее убрать?


 
Elena_K   (2002-08-20 09:46) [14]

птичка на Break On Exception где убирается
в параметрах я ничего такого не нашла(


 
Alexandr   (2002-08-20 09:47) [15]

ты бы хоть предупреждала, я чуть чаем не подавился от смеха.

здесь
ShowMessage(" подключение к базе данных неуспешно"#10#13+E.message);

e.message убери.

Ты вообще сколько дней программированием занимаешься?




 
Alexandr   (2002-08-20 09:50) [16]

tools-debugger options-Language Exceptions- stop on Delphi Exceptions


 
Elena_K   (2002-08-20 09:53) [17]

недолго, нужно же с чего то начать
всем большое спасибо))))


 
Alexandr   (2002-08-20 09:54) [18]

так что, помогло?


 
Alexandr   (2002-08-20 09:58) [19]

нет уж...
Всю эту ветку надо сохранить и юмор поместить.
Факт.
А я пошел монитор протирать...


 
Val   (2002-08-20 10:27) [20]

:)


 
Севостьянов Игорь   (2002-08-20 11:53) [21]

unit Login;

interface

uses
Windows, Forms, StdCtrls, SysUtils, Classes, ComCtrls, ExtCtrls,
Controls;

const
OrgName = "OrgName";

type
TfrmLogin = class(TForm)
lblName: TLabel;
edtName: TEdit;
lblPassword: TLabel;
edtPassword: TEdit;
btnOK: TButton;
btnCancel: TButton;
pnlImage: TPanel;
sbStatusBar: TStatusBar;
chkSaveParams: TCheckBox;
lblServer: TLabel;
edtServer: TEdit;
imgLogo: TImage;
procedure edtPasswordChange(Sender: TObject);
function GetUser: String;
function GetPassword: String;
function GetServer: String;
procedure SetUser(S: String);
procedure SetPassword(S: String);
procedure SetServer(S: String);
function SetConnectToDatabase: TModalResult;
procedure btnOKClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
published
{ Public declarations }
property User : String read GetUser write SetUser;
property Password : String read GetPassword write SetPassword;
property Server : String read GetServer write SetServer;
end;

var
frmLogin: TfrmLogin;
CountConnect: Integer;

implementation

uses Data, ShowError, Utils;

{$R *.DFM}

function TfrmLogin.GetUser: String;
begin
Result := edtName.Text;
end;

procedure TfrmLogin.SetUser(S: String);
begin
edtName.Text := S;
end;

function TfrmLogin.GetPassword: String;
begin
Result := edtPassword.Text;
end;

procedure TfrmLogin.SetPassword(S: String);
begin
edtPassword.Text := S;
end;

function TfrmLogin.GetServer: String;
begin
Result := edtServer.Text;
end;

procedure TfrmLogin.SetServer(S: String);
begin
edtServer.Text := S;
end;

procedure TfrmLogin.edtPasswordChange(Sender: TObject);
begin
btnOK.Enabled := (edtPassword.Text <> "");
end;

function TfrmLogin.SetConnectToDatabase: TModalResult;
begin
Result := mrNone;
while (CountConnect < 3) do
begin
try
Screen.Cursor := crSQLWait;
sbStatusBar.SimpleText := "Регистрация в системе...";
Inc(CountConnect);
//******************************************************************************
With dmData.OraSession do
begin
Connected := False;
LogonUsername := User;
LogonPassword := Password;
LogonDatabase := Server;
Connected := True ;
end;
//******************************************************************************
Result := mrOk;
CountConnect := 3;
sbStatusBar.SimpleText := EmptyStr;
except on E: Exception do
if CountConnect >= 3 then
begin
Screen.Cursor:=crDefault;
ShowErrorMsgEx("Результат регистрации на сервере",
"Соединиться с базой не удалось."#13#10+
"Обратитесь к администратору.");
Result := mrCancel;
Exit;
end
else
begin
Screen.Cursor:=crDefault;
sbStatusBar.SimpleText:="";
ShowErrorMsg("Результат регистрации на сервере", E);
Password := "";
edtName.SetFocus;
Exit;
end;
end; // end of except
end; //while
end;

procedure TfrmLogin.btnOKClick(Sender: TObject);
begin
ModalResult := SetConnectToDatabase;
if chkSaveParams.Checked and (ModalResult = mrOk) then
begin
SetRegValue(HKEY_LOCAL_MACHINE, "\SOFTWARE\"+OrgName+"\"+Application.Title, "UserName", edtName.Text);
SetRegValue(HKEY_LOCAL_MACHINE, "\SOFTWARE\"+OrgName+"\"+Application.Title, "Server", edtServer.Text);
end;
end;

procedure TfrmLogin.FormCreate(Sender: TObject);
begin
CountConnect := 0;
User := GetRegValue(HKEY_LOCAL_MACHINE, "\SOFTWARE\"+OrgName+"\"+Application.Title, "UserName");
Server := GetRegValue(HKEY_LOCAL_MACHINE, "\SOFTWARE\"+OrgName+"\"+Application.Title, "Server");
btnOK.Enabled := False;
Password := "oracle";
end;

procedure TfrmLogin.FormShow(Sender: TObject);
begin
if User <> EmptyStr then
with edtPassword do
begin
SetFocus;
SelectAll;
end;
end;

end.



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

Форум: "Базы";
Текущий архив: 2002.09.09;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.51 MB
Время: 0.007 c
1-26966
Ученик
2002-08-28 13:21
2002.09.09
Абстрактные виртуальные методы


1-27089
c0pyc@t
2002-08-28 09:36
2002.09.09
Уникальный ID


1-26967
partizan
2002-08-29 13:33
2002.09.09
ReadKey, KeyPressed


1-27063
Сайбрекс
2002-08-28 02:40
2002.09.09
Какие возможности Delphi?


3-26902
id_privin
2002-08-19 15:56
2002.09.09
Програмное создание числовых полей в DBF через ADO





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