Главная страница
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.016 c
1-35339
Vint
2002-07-29 11:44
2002.08.12
MoveFile


1-35309
GTA 3
2002-07-29 17:20
2002.08.12
Как узнать четыре последних символа в Edit1?


3-35207
Blunder
2002-07-23 13:57
2002.08.12
сравнение компонентов доступа


14-35432
Wild Wizard
2002-07-17 10:49
2002.08.12
Где же старые друзья?


4-35493
Yonic
2002-06-04 16:40
2002.08.12
OnTop