Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 332

/ вопрос открыт /

Когдая загружаю свою прогу на винде на которой не установлен Delphi и нажимаю на кнопку обработчик события:
Datamodule1.Table1.Active:=False;
Datamodule1.Table1.DatabaseName:= '';
Datamodule1.Table1.TableName:= MainForm.DBComboBox1.Text;
Datamodule1.Table1.TableType:= ttDbase;
Datamodule1.Table1.Active:=True;
with Datamodule1.Table1.FieldDefs do
begin
While not Datamodule1.Table1.Eof do
Begin
if Datamodule1.Table1.FieldByName('Date').AsString=DateToStr(MainForm.DateTimePicker1.Date) Then
MessageDlg('На этот день расписание уже составлено!', MtError,[MBOK, mbCANCEL],0);
Datamodule1.Table1.Next;
end;
Datamodule1.Table1.Edit;
Datamodule1.Table1.Insert;
Datamodule1.Table1.FieldByName('Date').AsString:=DateToStr(MainForm.DateTimePicker1.Date);
Datamodule1.Table1.FieldByName('Lesson1').AsString:=DbLookupCombobox1.Text;
Datamodule1.Table1.FieldByName('Lesson2').AsString:=DbLookupCombobox4.Text;
Datamodule1.Table1.FieldByName('Lesson3').AsString:=DbLookupCombobox7.Text;
Datamodule1.Table1.FieldByName('Lesson4').AsString:=DbLookupCombobox10.Text;
Datamodule1.Table1.FieldByName('Lesson5').AsString:=DbLookupCombobox13.Text;
Datamodule1.Table1.FieldByName('Teacher1').AsString:=DbLookupCombobox2.Text;
Datamodule1.Table1.FieldByName('Teacher2').AsString:=DbLookupCombobox5.Text;
Datamodule1.Table1.FieldByName('Teacher3').AsString:=DbLookupCombobox8.Text;
Datamodule1.Table1.FieldByName('Teacher4').AsString:=DbLookupCombobox11.Text;
Datamodule1.Table1.FieldByName('Teacher5').AsString:=DbLookupCombobox14.Text;
Datamodule1.Table1.Post;
MessageDlg('Сохранено!', MtInformation,[MBOK],0);

т.е. создает таблицу БД Access то уменя выскакивает ошибка:
An error occurred while attempting to initialize the Borland Database Engine (error $2108)
Такая же бадяга если хочу внести в таблицу какието данные.
Что мне делать. Помогите плиз. Просьба: Я еще познаю Азы Delphi. Не могли бы вы обяснить по подробней. Спасибо заранее.
А, еще как мне сделать экзешник минимальным.

mAx Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: mAx (статус: Посетитель)
Вопрос отправлен: 21 февраля 2007, 23:17
Состояние вопроса: открыт, ответов: 3.

Ответ #1. Отвечает эксперт: Вадим К

Ну не знаю, как ещё отвечать на этот вопрос, который изучен вдоль и впоперек. Дело в том, что когда то (1992-1997гг.) Борланд придумала хорошую технологию доступа к данных - BDE. Хорошую на то время. Но на данный момент эта технология НЕ РАЗВИВАЕТСЯ. Многие, старые да и новые книги по делфи почему то упорно игнорирую этот факт (мож им просто лень переписывать?) и толкают BDE как передовую технологию.
Что же делать? Есть два варианта. Найти где небудь дистрибутив BDE - когда то на сайте борланда был. Есть ли сейчас - не знаю.

Вариант два, более правильный. Да и переделок будет мало - ADO. Судя с вашего кода, вам прийдётся добавить на форму ADOConnection, в котором настоить с помощью мастера доступ к базе (ConnectionString). Рекомендую сразу путь с прямого заменить на относительный.
Также заменить компоненты TTable -> TADOTable
TQuery --> TADOQuery. И с помощью свойства Connection привязать их к ADOConnection. Если вы не особо извращались в коде - заработает с пол пинка.

Ответ отправил: Вадим К (статус: Академик)
Время отправки: 22 февраля 2007, 00:02
Оценка за ответ: 4

Ответ #2. Отвечает эксперт: Матвеев Игорь Владимирович

Здравствуйте, Рожков Максим Сергеевич!
Дистрибутив BDE можно достать из программ создания установки, InstallShield или WiseInstall - там есть галочка специальная. Размер дистрибудива Вашей программы "потяжелеет" мегабайт на пять. Также в InstallShield можно добавлять псевдонимы БД.

Но, конечно, лучше сразу переходить на более передовые технологии.

Ответ отправил: Матвеев Игорь Владимирович (статус: Студент)
Время отправки: 22 февраля 2007, 03:27

Ответ #3. Отвечает эксперт: Alex Van Glukhman

Здравствуйте, Рожков Максим Сергеевич!

Всё правильно! На компе клиента просто не установлена BDE. Надо либо скачать дистрибутив BDE либо настроить подключку без использования BDE

Вот пример написания без использования BDE
http://program.rin.ru/razdel/html/1242.html

Удачи

Ответ отправил: Alex Van Glukhman (статус: 7-ой класс)
Время отправки: 22 февраля 2007, 08:20


Мини-форум вопроса

Мини-форум пуст.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:53
Выполнено за 0.02 сек.