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

Вниз

Соединение с БД 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;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.015 c
1-27098
Dmitriy Polskoy
2002-08-28 16:42
2002.09.09
используется ли папка другим приложением


1-27105
IL-2
2002-08-28 21:34
2002.09.09
Sound


1-27001
Вован
2002-08-29 19:24
2002.09.09
Ошибка времени компиляции


14-27171
.nuke
2002-08-13 18:36
2002.09.09
MPEGs


3-26893
Sergey L.
2002-08-20 09:48
2002.09.09
Работа с отчетами.