Форум: "Базы";
Текущий архив: 2002.08.12;
Скачать: [xml.tar.bz2];
ВнизКоннект к базе данных!!!!! Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.006 c