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

Вниз

Коннект к базе данных!!!!!   Найти похожие ветки 

 
Julya ©   (2002-07-23 11:01) [0]

До подключения к дазе проверяется условие - с какого компа происходит коннект к базе, в зав-ти от этого можно/нельзя редактить записи. Я беру GetComputerName(buf, nSize) и проверяю, после этого криэйчу датамодуль. Коннект должен быть в любом случае, но у меня прога почему то виснет.......
Вот без этой проверки все работало, а тут - не пойму почему....
Подскажите, пожалуйста!!!!!!!Может что не так делаю.....


 
AngeL B.   (2002-07-23 11:11) [1]

Подсказываем! Ты что-то не так делаешь...
Для более подробной подсказки нужны подробности


 
Julya ©   (2002-07-23 11:26) [2]

Аксессовская база, вначале криэйтится главный модуль, потом датамодуль. В форм криэйте главной формы проверяю условие - тот ли это комп, с которого можно редактить, если да, то присваиваю режим Админа, иначе- режим юзера. Дальше криэйчу датамодуль, если режим юзера - ридонли таблиц=TRUE.
После этого криэйтится другая форма, в которой открываются таблицы базы. Может прога виснет в этом месте, шут ее знает, точно сказать не могу...
но : если убрать проверку на сетевое имя компа - все работает!
Может я не в том месте проверяю????????
Помогите, пожал-ста, кто знает!!!!!!!!!!!!!


 
Julya ©   (2002-07-23 11:42) [3]

Вот Код:
procedure TMainForm.FormCreate(Sender: TObject);

begin
try
with TLoginForm.Create(Application) do begin
if ShowModal = mrCancel then
raise Exception.Create("Завершение работы программы"){TerminateApplication}
else begin
if (UpperCase(Edit1.Text) = ADMINPASSWORD) then
//проверка на сетевое имя компа
//если из офо, то разрешаем редактить
IF GetCompName then - если этот иф убрать, то все работает!!(((
AppMode := amAdmin
else AppMode := amUser
else
if UpperCase(Edit1.Text) = USERPASSWORD then
AppMode := amUser
else
raise Exception.Create("Пароль неверен! Нет доступа к программе."){TerminateApplication};
Release;
end;
end;

dmReis := TdmReis.Create(Self); - вот тут прога вылетает!!!Аксесс виолейшен...

dmReis.Database.Connected := True;
except
on E: Exception do begin
Application.MessageBox(PChar(E.Message), "Ошибка", MB_OK or MB_ICONERROR);
TerminateApplication;
end;
end;
end;

что неверно???помогите!!!!


 
Romkin ©   (2002-07-23 11:51) [4]

Текст GetCompName, пожалуйста


 
Julya ©   (2002-07-23 11:54) [5]

Текст функции проверки -
Function TMainForm.GetCompName : Boolean;
Const mas : array [0..11] of String = ("VTSAMIICWOPZ08","VTSAMIICSADM04","VTSAMIICWOPZ01",
"vtsamuprwofo01","vtsamuprwofo03","vtsamuprwofo04","vtsamuprwofo05",
"vtsamuprwofo06","vtsamuprwofo07","vtsamuprwofo08","vtsamuprwofo09",
"vtsamuprwofo10");
Var
buf : PChar;
nSize : Cardinal;
s : String;
i : Byte;
Begin
Result := False;
GetComputerName(buf, nSize);
s := string(buf);
For i:=0 to 11 do
if s = mas[i] then begin
Result := True;
Exit;
end;
end;


 
Romkin ©   (2002-07-23 12:25) [6]

Ну да, а кто для Buf память выделять будет?! Пушкин? и nSize указывать?

function GetCompName: string;
var
Buf: string;
nSize: cardinal;
begin
nSize := MAX_COMPUTERNAME_LENGTH + 1;
SetLength(Buf, nSize - 1);
GetComputerName(PChar(Buf), nSize);
SetLength(Buf, nSize);
Result := buf;
end;



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

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

Наверх




Память: 0.48 MB
Время: 0.018 c
7-35471
lame
2002-05-21 05:18
2002.08.12
Как програмно остановить жесткий диск ?


14-35450
Younick
2002-07-15 10:38
2002.08.12
Странная тенденция или куда мы катимся или ...


1-35313
Nico1a
2002-07-29 19:35
2002.08.12
TMemo


7-35486
alehan
2002-05-28 11:32
2002.08.12
Сервис SRV


14-35418
esprit_bel
2002-06-06 11:27
2002.08.12
Исходник