Форум программистов, компьютерный форум, киберфорум
Наши страницы

Delphi и базы данных

Войти
Регистрация
Восстановить пароль
 
Salpson
1 / 1 / 0
Регистрация: 15.04.2013
Сообщений: 42
#1

Условия на корректность базы данных Access - Delphi БД

29.12.2013, 18:11. Просмотров 359. Ответов 5
Метки нет (Все метки)

Нужна проверка, которая будет проверять корректность базы данных Access
Другими словами. Для подключения бд я использую компонент ADOConnection1
If база данных не является её (например переименовав текстовый документ в Groups.mdb) then бла бла бла
Если проверок не делать, то выскакивает стд. ошибка, что база данных не корректная. Мне этой ошибки не надо.

Добавлено через 2 часа 2 минуты
Или можно сделать как то такую проверку?
Delphi
1
if (ADOConnection1.Connected:=True)=False then Exit;
Конструкция конечно же тут неправильная, но суть в том что при ADOConnection1.Connected:=True как раз и подключается наша база данных, если она не сможет подключиться, то значение сбрасывается на False.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.12.2013, 18:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Условия на корректность базы данных Access (Delphi БД):

Открытие базы данных Access - Delphi БД
Ребята не подскажите как открыть базу bd.mdb , по нажатию на кнопку. Имею ввиду что бы открылся Access и в нем база. Спасибо.

Защита базы данных Access - Delphi БД
Я поставил пароль на базу данных access ,но dbgrid теперь не видит базу. Куда и какой код нужно прописать что бы программа видела базу...

Вывести список с Базы Данных Access - Delphi БД
Как можно сделать что бы в DBComboBox выводились данные одной таблицы. После выбора, выводились данные других таблиц в BDText (либо с...

MS Access Выборка из базы данных Access по условию - Delphi БД
Помогите, пожалуйста поправить код... Задача: Есть база данных. В ней две связанных между собой таблицы. На форме расположено два...

Перенос базы данных Sql на MS access - Delphi БД
Здравствуйте ребят.Такая проблемка после экспорта базы данных с sql на акссес программа на (Delphi) выдает ошибки .Подскажите как быть.Вот...

Не могу отобразить таблицу из базы данных MS Access! - Delphi БД
В DBGrid не отображаются данные таблицы БД MS Access. Перемещаю на форму ADOConnection1: соединение с базой данных происходит успешно...

5
HyperZen
481 / 235 / 7
Регистрация: 16.06.2011
Сообщений: 836
29.12.2013, 19:12 #2
Delphi
1
2
3
4
5
try
...
except
...
end;
1
Salpson
1 / 1 / 0
Регистрация: 15.04.2013
Сообщений: 42
30.12.2013, 23:36  [ТС] #3
HyperZen,
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
procedure TForm2.FormShow(Sender: TObject);
var
  I:Integer;
begin
    ADOQuery1.SQL.Clear;
    ADOQuery1.SQL.Add('SELECT ID FROM ');
    ADOQuery1.SQL.Add('Questions');
  Try
    ADOQuery1.Active:=True;
  Except
    Exit;
  end;
 
  Memo1.Lines.Clear;
  for I:=1 to ADOQuery1.RecordCount do
  begin
    Memo1.Lines.Add(ADOQuery1.Fields[0].AsString);
    ADOQuery1.Next;
  end;
end;
Почему то вылетает ошибка на ADOQuery1.Active:=True; ведь по идеи он просто должен остановить дальнейшую проверку. Ошибка в плане, что не найдено поле Questions
0
HyperZen
481 / 235 / 7
Регистрация: 16.06.2011
Сообщений: 836
02.01.2014, 14:11 #4
Значит сам запрос выполняется неправильно.
Лучше будет, если Вы заключите все, что касается ADOQuery в логические скобки try..except:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
procedure TForm2.FormShow(Sender: TObject);
var
  I:Integer;
begin
  Try
    ADOQuery1.SQL.Clear;
    ADOQuery1.SQL.Add('SELECT ID FROM ');
    ADOQuery1.SQL.Add('Questions');
    ADOQuery1.Active:=True;
  Except
    Exit;
  end;
 
  Memo1.Lines.Clear;
 
  ADOQuery1.First;
 
  while not ADOQuery1.Eof do
  begin
    Memo1.Lines.Add(ADOQuery1.Fields[0].AsString);
    ADOQuery1.Next;
  end;
end;
Оператор исключения будет отрабатывать нормально вне IDE (запустите скомпилированный exe-файл отдельно).

И код ошибки лучше бы увидеть полностью.
0
Salpson
1 / 1 / 0
Регистрация: 15.04.2013
Сообщений: 42
02.01.2014, 16:28  [ТС] #5
HyperZen, спасибо, сейчас все работает правильно. Хотя я так пробовал ранее, но ошибка была...
Пользуясь случаем, хотел узнать для чего нам ADOQuery1.First; в начале? (без него тоже вроде как работает)
И что значит Eof ? заранее спасибо.
0
HyperZen
481 / 235 / 7
Регистрация: 16.06.2011
Сообщений: 836
03.01.2014, 11:09 #6
First - чтобы курсор точно стоял на первой записи в выборке.
Eof - если примерно, то "пока не конец" выполнять действия...
1
03.01.2014, 11:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.01.2014, 11:09
Привет! Вот еще темы с ответами:

Как программно удалить таблицу из базы данных Access? - Delphi БД
Как в базе данных MS Access удалить таблицу программно???:help:

Как присвоить значение колонке базы данных Access - Delphi БД
Здравствуйте. Такой вот вопрос у меня. Как присвоить значение колонке базы данных Access? Допустим у меня есть база данных которая...

Подключение базы данных MS Access в проєкте RAD Studio 10 - Delphi БД
Помогите найти ошибку. Ставлю компонент ADOConnection, пытаюсь построить Connection String, кнопка Build не работает. Много раз работала...

Разработка базы данных в СУБД Access и создание приложения «Принтеры» - Delphi БД
Разработка базы данных в СУБД Access и создание приложения «Принтеры» с использованием внешнего компонента Data Decktop Delphi и...


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

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

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