Delphi 5.0 Open Interbase / FireBird соединение через код - PullRequest
1 голос
/ 17 ноября 2010

Это старые вещи! Относится к delphi 5.0 и interbase 1.6.

Я пытаюсь открыть соединение с БД с помощью кода. Но этот код связан с включением соединения, все компоненты были добавлены с помощью пользовательского интерфейса delphi drag-drop: DataSource1, TForm1, DBGrid, DBNavigator и т. Д.

procedure TDataModule2.DataModuleCreate(Sender: TObject); 
begin 
  database.DatabaseName:='C:\MyDatabase.GDB'; 
  database.Connected := true; 
  database.Open; 
  IBTransaction.Active := true; 

  myTable.Open; 
end;

У меня есть TForm с компонентом DBGrid и DBNavigator. У меня также есть TIBQuery (с которым связан DataSource1) с этим кодом в SQLStrings:

SELECT * FROM NEW_TABLE

В форме у меня есть этот код для включения DBNavigator и DBGrid для отображения значений БД. БД очень проста - это просто таблица: NEW_TABLE с NEW_VALUE типа VARCHAR

procedure TForm1.FormCreate(Sender: TObject); 
begin 
  DataSource1.DataSet.Open;
  // This will call the query associated to this DataSource1 the tibQuery1 to call
  // SELECT * FROM NEW_TABLE, but the message below appears: IBClientError...
end; 

Появляется сообщение: IBClientError с сообщением «База данных не назначена»

OBS1: Если я подключаю компоненты вручную по пользовательскому интерфейсу delphi, соединение с БД устанавливается.

1 Ответ

1 голос
/ 17 ноября 2010

Вы должны присвоить свойству Database ваш запрос, например:

IBQuery1.Database := MyDatabase;
...