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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.01.2013, 23:16   #1
Dozent
Форумчанин
 
Регистрация: 21.05.2008
Сообщений: 495
По умолчанию Ошибка при подключение к базе FireBird

Всем привет.

При запуске проекта выходить ошибка что не может чото там access violation at address. Ошибка начала выходить после того как я с формы перенёс все компаненты в датамодуль, причём тупо копипаст.

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

Код:
 procedure TForm1.FormCreate(Sender: TObject);
var
FIniFile: TIniFile;
d:TDateTime;
i:integer;
s:string;
begin
WindowState := wsMaximized;
  try
  FIniFile:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'Config.ini');
  try
    s:=FIniFile.ReadString('Base','Path','');
    DM.IBDatabase1.DatabaseName:=s;
  finally
    FIniFile.Free;
  end;
  DM.IBDatabase1.Connected:=true;
В чём может быт ьпроблема?
Dozent вне форума Ответить с цитированием
Старый 24.01.2013, 23:31   #2
ReportCube
Форумчанин
 
Аватар для ReportCube
 
Регистрация: 11.03.2011
Сообщений: 426
По умолчанию

Модуль DM ещё не создан
ReportCube вне форума Ответить с цитированием
Старый 24.01.2013, 23:51   #3
Dozent
Форумчанин
 
Регистрация: 21.05.2008
Сообщений: 495
По умолчанию

Да да, вычитал и вспомнил это) у меня даже есть решение когда делал

Код:
  public
       constructor CreateValues(AOwner: TComponent; Values: Integer);
 
 
onstructor TDynDM.CreateValues(AOwner: TComponent; Values: Integer);
begin
  inherited Create(AOwner);
  FValues:=Values;
  ErrGl:=0;
  try
   FIniFile:= TIniFile.Create(ExtractFilePath(Application.ExeName)+ 'Config.ini');
  //try
   ip:= FIniFile.ReadString('Base','IP','');
   port:=FIniFile.ReadString('Base'+IntToStr(FValues), 'Port','');
   PName:= FIniFile.ReadString('Base'+IntToStr(FValues), 'Path','');
   un:= FIniFile.ReadString('Base'+IntToStr(FValues),'user_name','');
   pas:= FIniFile.ReadString('Base'+IntToStr(FValues),'password','');
 
    //Подключение к базе   DB-IBDatabase
   DB.Connected := false;
   DB.DatabaseName:=ip+'/'+port+':'+PName;
   DB.Params.Add('user_name='+un);
   DB.Params.Add('password='+pas);
   DB.Connected := true;
Тогда получается компаненты хранить на форме лучше)
Поделитесь опытом где храните компненты если их много)
Dozent вне форума Ответить с цитированием
Старый 24.01.2013, 23:56   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Правильно все сделали, только создание DataModule в .dpr сделать раньше создания основной формы
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 25.01.2013, 00:02   #5
Dozent
Форумчанин
 
Регистрация: 21.05.2008
Сообщений: 495
По умолчанию

Эм подскажите как?
Dozent вне форума Ответить с цитированием
Старый 25.01.2013, 00:06   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Для д7: меню Project->View Source. Примерно так выглядит для проекта из одной формы и одного датамодуля
Код:
  Application.Initialize;
  Application.CreateForm(TDataModule1, DataModule1);
  Application.CreateForm(TForm1, Form1);
  Application.Run;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 25.01.2013, 00:22   #7
Dozent
Форумчанин
 
Регистрация: 21.05.2008
Сообщений: 495
По умолчанию

сделал как вы сказали
Сейчас появилась ошибка Database not assigned, посмотрел что настройки сдибилсь выставил и всё равно такая ошибка...

Эм помогите разобратся) А то я сегодняшний день убил на перекидывание с формы в датамодуль и обратно и опять) и везде менял обращение к компанентам)

Понять не могу что ему не хватает)

Понял кажись, после переноса сбились свойства, какая транзакция к чему итд и тп шас разбиратся буду)

Всё подправил, всё запустилось, всё работает, спасибо....

Последний раз редактировалось artemavd; 29.01.2013 в 15:01.
Dozent вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание и подключение к базе данных Firebird artemavd Общие вопросы Delphi 0 11.04.2012 11:05
программное подключение к базе Firebird Jene4ka БД в Delphi 5 24.04.2011 22:12
Сетевое подключение FlameRobin к базе FireBird 2.1 Timpi БД в Delphi 3 31.03.2011 13:53
Если ошибка в подключение базе данных serres PHP 3 22.05.2010 15:24
подключение к базе Oracle при помощи php Paul Hindenburg PHP 2 28.10.2008 00:06