Текущий архив: 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.5 MB
Время: 0.007 c