Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > TTable


Автор: Alex_G 4.10.2004, 21:01
Помогите разобраться.

Пишу процедуру для доступа к БД, вот так:

procedure loaddb();
var s1:string;
...
begin

s1:=EasyTable1.fieldbyname('name1').AsString;

end;

выдает ошибку - незадекларированная переменная EasyTable1.
В чем ошибка?


Автор: Pakshin A. S. 4.10.2004, 21:07
smile.gif smile.gif smile.gif
А так:
s1:=<Имя формы>.EasyTable1.fieldbyname('name1').AsString;

Пример:
Код

s1:=Form1.EasyTable1.fieldbyname('name1').AsString;

smile.gif smile.gif smile.gif

Автор: Alex_G 4.10.2004, 21:57
А что если процедура в дальнейшем будет использованна в длл?

наверное надо будет записать так:
s1:=DataModule1.EasyTable1.fieldbyname('name1').AsString;

А нет более универсального способа, что бы не надо было менять код процедуры?

Автор: Pakshin A. S. 4.10.2004, 21:59
Засунуть описание процедуры в класс формы и писать
Код

procedure TForm1.MyProc;


А вообще можно Table как параметр передвавать с var...

Автор: Alex_G 4.10.2004, 22:10
Цитата(Pakshin @ 4.10.2004, 21:59)
А вообще можно Table как параметр передвавать с var...

Как? вот так:

procedure loaddb(var EasyTable1:TEasyTable);
var s1:string;
...
begin

s1:=EasyTable1.fieldbyname('name1').AsString;

end;

А почему с var... , может можно и без var... если бд нужна только для чтения

Автор: Alex_G 4.10.2004, 22:36
Спасибо Pakshin A. S., я сам проверил все работает:


Автор: Pakshin A. S. 5.10.2004, 16:54
Обращайся, если что...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)