Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.04.2011, 11:17   #1
Kreadlling
Форумчанин
 
Аватар для Kreadlling
 
Регистрация: 03.09.2009
Сообщений: 116
По умолчанию Ошибка при запуске программы с базой данных

Здравствуйте! При запуске программы с базой данных вылетает ошибка
Database must be specified (смотрите рисунок)
Код здесь:
Код:
procedure TFormMain.BitBtn1Click(Sender: TObject);
var s:string;
begin
   if (InputQuery('Ввод группы', 'Группа:', s)) then
   begin
      with dm.q do
         begin
            Active := false;
            SQL.Clear;
            SQL.Add('INSERT INTO GROUPS(NAME_GROUPS) VALUES(');
            SQL.Add(QuotedStr(s) + ')');
            ExecSQL;
         end;
      with dm.SimpleDSGroups do
         begin
            Active := false;
            DataSet.Active := false;
            DataSet.Active := true;
            Active := true;
            Locate('NAME_GROUPS', s, [loCaseInsensitive]);
         end;
      BitBtnEnabled(0);
   end;
end;

procedure TFormMain.BitBtn4Click(Sender: TObject);
var s:string;
begin
   if (InputQuery('Ввод ФИО', 'ФИО:', s)) then
   begin
      with dm.q do
         begin
            Active := false;
            SQL.Clear;
            SQL.Add('INSERT INTO STUDENTS(FIO, ID_GROUPS) VALUES(');
            SQL.Add(QuotedStr(s) + ',' + dm.SimpleDSGroups.FieldByName('ID_GROUPS').AsString + ')');
            ExecSQL;
         end;
      with dm.SimpleDSStudents do
         begin
            Active := false;
            DataSet.Active := false;
            DataSet.Active := true;
            Active := true;
            Locate('FIO', s, [loCaseInsensitive]);
         end;
      BitBtnEnabled(1);
   end;

end;

procedure TFormMain.BitBtn7Click(Sender: TObject);
begin
  close;
end;

procedure TFormMain.BitBtnEnabled(i: integer);
begin
  case i of
    0:
      begin
        if dm.SimpleDSGroups.RecordCount = 0 then
          begin
            BitBtn2.Enabled := false;
            BitBtn3.Enabled := false;
          end
        else
          begin
            BitBtn2.Enabled := true;
            BitBtn3.Enabled := true;
          end;
      end;
    1:
      begin
        if dm.SimpleDSGroups.RecordCount = 0 then
          BitBtn4.Enabled := false
        else
          BitBtn4.Enabled := true;
        if dm.SimpleDSStudents.RecordCount = 0 then
          begin
            BitBtn5.Enabled := false;
            BitBtn6.Enabled := false;
          end
        else
          begin
            BitBtn5.Enabled := true;
            BitBtn6.Enabled := true;
          end;
      end;
  end;
end;

procedure TFormMain.FormActivate(Sender: TObject);
begin
  PageControl1.ActivePage := TabSheet1;
  dm.SQLConnection1.Connected := false;
  dm.SQLConnection1.Params.Values['database'] := ExtractFileDir(ParamStr(0)) + '\bd.fdb';
  dm.SQLConnection1.Connected := true;
  dm.SimpleDSGroups.Active := false;
  dm.SimpleDSGroups.DataSet.Active := false;
  dm.SimpleDSGroups.DataSet.CommandText := 'SELECT * FROM GROUPS';
  dm.SimpleDSGroups.DataSet.Active := true;
  dm.SimpleDSGroups.Active := true;
  BitBtnEnabled(0);
end;

procedure TFormMain.PageControl1Change(Sender: TObject);
begin
   if PageControl1.ActivePage = TabSheet2 then
      begin
         BitBtnEnabled(1);
         if dm.SimpleDSGroups.RecordCount = 0 then
            exit;
         with dm.SimpleDSStudents do
            begin
               Active := false;
               DataSet.Active := false;
               DataSet.CommandText := 'SELECT * FROM STUDENTS WHERE ID_GROUPS=' +
               dm.SimpleDSGroups.FieldByName('ID_GROUPS').AsString;
               DataSet.Active := true;
               Active := true;
            end;
      end;
end;

end.
Не подскажете как можно это исправить. Заранее благодарю.
Изображения
Тип файла: jpg 1.JPG (85.8 Кб, 133 просмотров)

Последний раз редактировалось Stilet; 05.04.2011 в 11:55.
Kreadlling вне форума Ответить с цитированием
Старый 05.04.2011, 11:25   #2
BARNEY
Участник клуба
 
Регистрация: 23.04.2009
Сообщений: 1,058
По умолчанию

а по f7 строчку нельзя определить?
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
BARNEY вне форума Ответить с цитированием
Старый 05.04.2011, 11:57   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
dm.SQLConnection1.Params.Values['database'] := ExtractFileDir(ParamStr(0)) + '\bd.fdb';
а почему не пользуешь IBDatabase?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при запуске программы после компиляции Neo_AVE C++ Builder 2 27.02.2011 09:13
Ошибка при запуске программы TestEditor vip56 Помощь студентам 0 19.01.2011 15:17
ошибка при запуске программы из дельфи debugger kernel bordbk105.dll betirsolt Общие вопросы Delphi 4 16.01.2011 22:25
Ошибка при запуске программы stakam Visual C++ 1 18.12.2010 18:19
Ошибка при запуске программы MAcK Общие вопросы .NET 5 14.08.2008 15:12