связывание динамически созданых компонентов

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

связывание динамически созданых компонентов

Сообщение nic1982 » 05.12.2012 13:13:33

необходимо динамически создать: TIBConnection, TSQLTransaction, TSQLQuery, TDatasource
и связать:
1) TSQLTransaction с TIBConnection
2) TSQLQuery с TIBConnection
3) TDatasource с TSQLQuery

есть такой код:
Код: Выделить всё
procedure p;
var
   conn  : TIBConnection;
   tran  : TSQLTransaction;
   query : TSQLQuery;
   ds    : TDatasource;   

begin
   conn:=  TIBConnection.Create(nil);
   tran:=  TSQLTransaction.Create(nil);
   query:= TSQLQuery.Create(nil);
   ds:=    TDatasource.Create(nil);   
 
   tran.DataBase.Name:=conn.Name;
   query.DataBase.Name:=conn.Name;
   ds.DataSet.Name:=query.Name;

   ................................
              прочий код
   ................................

   ds.Free;
   query.Free;
   tran.Free;
   conn.Free;     
end;


на строке ---> tran.DataBase.Name:= conn.Name;
ошибка: Проект ХХХ вызвал класс исключения 'External: SIGSEGV'
nic1982
новенький
 
Сообщения: 48
Зарегистрирован: 17.05.2011 16:34:05

Re: связывание динамически созданых компонентов

Сообщение SSerge » 05.12.2012 13:39:43

Не вижу, где вы определили значение поля Conn.Name.
так что вполне логично, tran.DataBase.Name:=nil; -> SIGSEGV
SSerge
энтузиаст
 
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Re: связывание динамически созданых компонентов

Сообщение nic1982 » 05.12.2012 13:43:17

:shock:
:D

Добавлено спустя 9 минут 23 секунды:
:(

добавил conn.Name:= 'conn',
ошибка таже самая в томже месте

Код: Выделить всё
procedure p;
var
   conn  : TIBConnection;
   tran  : TSQLTransaction;
   query : TSQLQuery;
   ds    : TDatasource;   

begin
   conn:=  TIBConnection.Create(nil);
   tran:=  TSQLTransaction.Create(nil);
   query:= TSQLQuery.Create(nil);
   ds:=    TDatasource.Create(nil);   

   conn.Name:=  'conn';
   tran.Name:=  'tran';
   query.Name:= 'query';
   ds.Name:=    'ds';

   tran.DataBase.Name:=conn.Name;
   query.DataBase.Name:=conn.Name;
   ds.DataSet.Name:=query.Name;

   ................................
              прочий код
   ................................

   ds.Free;
   query.Free;
   tran.Free;
   conn.Free;     
end;
nic1982
новенький
 
Сообщения: 48
Зарегистрирован: 17.05.2011 16:34:05

Re: связывание динамически созданых компонентов

Сообщение v-t-l » 05.12.2012 15:48:51

Код: Выделить всё
    procedure p;
    var
       conn  : TIBConnection;
       tran  : TSQLTransaction;
       query : TSQLQuery;
       ds    : TDatasource;   

    begin
       conn:=  TIBConnection.Create(nil);
       tran:=  TSQLTransaction.Create(nil);
       query:= TSQLQuery.Create(nil);
       ds:=    TDatasource.Create(nil);   

       tran.DataBase:=conn;
       query.DataBase:=conn;
       ds.DataSet:=query;

       ................................
                  прочий код
       ................................

       ds.Free;
       query.Free;
       tran.Free;
       conn.Free;     
    end;
v-t-l
энтузиаст
 
Сообщения: 742
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Re: связывание динамически созданых компонентов

Сообщение nic1982 » 05.12.2012 16:06:25

v-t-l спс

PS
увидел ваше сообщение после того как сам пришол к тому же выводу :)
и убрал часть кода
Код: Выделить всё
   conn.Name:=  'conn';
   tran.Name:=  'tran';
   query.Name:= 'query';
   ds.Name:=    'ds';
nic1982
новенький
 
Сообщения: 48
Зарегистрирован: 17.05.2011 16:34:05


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 239

Рейтинг@Mail.ru
cron