Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi и базы данных
Войти
Регистрация
Восстановить пароль
 
comedi
0 / 0 / 1
Регистрация: 04.04.2014
Сообщений: 42
#1

DB is not open - Delphi БД

08.09.2014, 17:03. Просмотров 486. Ответов 4
Метки нет (Все метки)

Делаю форму входа\регистрации, все верно прописал и должно работать, но пишет что база не открыта... Не знаю как решить эту проблему, может кто помочь? в IBExpert-e база открывается, все работает, а вот в делфе какие то проблемы. Вот,собственно, код :
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
procedure Tf_vhod.BitBtn2Click(Sender: TObject);
var
  FIniFile: TIniFile;
  temp :integer;
begin
  f_ned.IBTransaction1.Active:=false;
  f_ned.IBTransaction1.Active:=true;
 
  f_ned.IBQuery1.Close;
  f_ned.IBQuery1.SQL.Clear;
 
//подготовка и подключение к базе данных
f_ned.IBDatabase1.Connected:=false;
f_ned.IBDatabase1.DatabaseName:='';
f_ned.IBDatabase1.Params.Clear;
f_ned.IBDatabase1.LoginPrompt:=false;
  FIniFile :=TIniFile.Create(ExtractFilePath(Application.ExeName) + 'config.ini');
    f_ned.IBDatabase1.DatabaseName:=FIniFile.ReadString('Base', 'Path', '');;
      with f_ned.IBDatabase1 do
       begin
         Params.Add('user_name=sysdba');
         Params.Add('password=masterkey');
         Params.Add('lc_ctype=WIN1251');
       end;
  f_ned.IBDatabase1.Connected:=true;
 
        if ((Ed1.Text='') and (Ed2.Text='')) then
          begin
            ShowMessage('Необходимо заполнить все поля');
            Exit;
          end
        else
          begin
            f_ned.IBQuery1.SQL.Text:='select * from SP_AVTORIZATION ('+QuotedStr(Ed1.Text)+
                                ', '+QuotedStr(Ed2.Text)+')';
            f_ned.IBQuery1.Open;
            temp:=f_ned.IBQuery1.FieldByName('REZ').AsInteger;
              if (temp<>0) then
                begin
                  f_ned.Show;
                  f_vhod.Visible:=false;
                end
              else
                begin
                  Application.MessageBox('Неправильно введен логин и пароль', 'Ошибка', MB_OK+MB_iconerror);
                end;
          end;
end;
    procedure Tf_vhod.Ed1KeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then
BitBtn2.Click;
end;
 
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.09.2014, 17:03
Я подобрал для вас темы с готовыми решениями и ответами на вопрос DB is not open (Delphi БД):

[ILINK32 Error] Fatal: Could not open .\Debug\Win32\Variant_1.ilf (project already open in IDE?)
Fatal: Could not open .\Debug\Win32\Variant_1.ilf (project already open in...

Error: EMFILE: too many open files, open
Добрый день, подскажите плииз! Поймал ошибку &quot;Error: EMFILE: too many open...

Запутался между open и opener. Как отправить данные из opener в open
Открываю в родители новое окно через open var openWindow =...

Open CV
Господа кто может сталкивался с данной библиотекой , можете просвитить или...

Open gl
Доброе время суток. Возникла проблема в opengl. Мне нужно импортировать много...

OPEN GL
такое дело не как не могу с арентироваться с кординатам в open gl, у меня как...

4
SAMZ
1261 / 704 / 61
Регистрация: 21.12.2009
Сообщений: 2,255
08.09.2014, 20:38 #2
В начале процедуры манипуляции с транзакциями и объектами БД. А БД в этот момент открыта?
0
Скандербег
927 / 886 / 292
Регистрация: 07.08.2012
Сообщений: 2,464
08.09.2014, 20:48 #3
Скорее всего, форма, которая скрывается под именем f_ned к моменту обращения к ее компонентам еще не создана.
0
comedi
0 / 0 / 1
Регистрация: 04.04.2014
Сообщений: 42
08.09.2014, 21:45  [ТС] #4
форма есть, она главная. Вопрос только сейчас встал в форме регистрации. Она не хочет добавлять данные, идет сразу по ветке Не могу Сохранить
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
procedure Tf_reg.BitBtn1Click(Sender: TObject);
var
  FIniFile: TIniFile;
begin
  FIniFile := TIniFile.Create(ExtractFilePath(Application.ExeName)+ 'config.ini');
  try
  f_ned.IBDatabase1.DatabaseName := FIniFile.ReadString('Base', 'Path', '');
  finally
  FInifile.Free;
  end;
  f_ned.IBDatabase1.Connected :=true;
  f_ned.IBTransaction1.Active:=false;
  f_ned.IBTransaction1.Active:=true;
 
  f_ned.IBQuery1.Close;
  f_ned.IBQuery1.SQL.Clear;
  f_ned.IBQuery1.SQL.Add('INSERT INTO POLSOVATEL (U_SURNAME, U_FIRSTNAME, U_LASTNAME,'+
                    ' U_LOGIN, U_PASSWORD)');
  f_ned.IBQuery1.SQL.Add('values ('+QuotedStr(Ed1.Text)+', '+QuotedStr(Ed2.Text)+
                            ', '+QuotedStr(Ed3.Text)+', '+QuotedStr(Ed5.Text)+
                            ', '+QuotedStr(Ed6.Text));
 try
  f_ned.IBQuery1.ExecSQL;
  f_ned.IBtransaction1.CommitRetaining;
except
  f_ned.IBtransaction1.RollbackRetaining;
  Application.MessageBox('Не могу сохранить','Ошибка', MB_OK+MB_ICONERROR);
 
end;
f_reg.Close;
f_vhod.Show;
end;
0
andrey_k3
128 / 128 / 41
Регистрация: 17.10.2013
Сообщений: 333
08.09.2014, 22:03 #5
17..21 переписать с параметрам, убрать try...except и посмотреть на текст исключения
0
08.09.2014, 22:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.09.2014, 22:03
Привет! Вот еще темы с решениями:

Db.open
Call db.Open(stDBServer,stDBFileName ) If db.IsOpen=True Then ... ... ......

Open GL
Всем привет! У меня win 7 64 bit. установил себе sinema 4 D , и стоило эту...

OPEN GL
OPEN GL - КОРДИНАТЫ В OPEN GL НАЧИНАЮ ОТРИСОВЫВАТЬСЯ ОТ ЦЕНТРА Т.Е (0.0) ЭТО...

Open MP
Компилятор выдает ошибки: imgur.com/KNT59iR *.pro file QT -= gui CONFIG...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru