![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
|
Здравствуйте!
Есть код, который будет повторяться много раз. В нем изменяется только имя таблицы adotable. Как оформить его в процедуру с параметром имени таблицы? ![]() |
|
#2
|
||||
|
||||
|
Код:
procedure TableOperations(FTableName : string); begin ADOTable.Close; ADOTable.TableName := FTableName; // и т.д. // и т.п. end; |
|
#3
|
||||
|
||||
|
Ну если реально "имя таблицы", то:
Код:
procedure SomeProc(ATableName:string) begin ... end; Код:
procedure SomeProc(ADOTable:TADOTable) begin ... end; |
| Этот пользователь сказал Спасибо Aristarh Dark за это полезное сообщение: | ||
Mrak (14.02.2013)
| ||
|
#4
|
||||
|
||||
|
вот с кодом понятней будет
впервые пользую процедуры, вроде все верно по объявлению-описанию-вызову Код:
type // объявляю
TForm8 = class(TForm)
// .....
procedure af8(table_name: string); // ну явно не стринг, TADOTable нет
var
Form8: TForm8;
implementation
{$R *.dfm}
uses Unit1, Unit_DM;
procedure af8(table_name: ??string); // описываю
begin
if dm.table_name.fieldbyname('zayavka').asstring = 'Заявка' then
btn1.visible:=true;
end;
procedure TForm8.Button1Click(Sender: TObject); // вызываю
begin
af8(adotable_klient);
end; |
|
#5
|
||||
|
||||
|
Если использовать именно в таком контексте, то:
Код:
type // объявляю
TForm8 = class(TForm)
// .....
procedure af8(table: TDataSet); // ну явно не стринг, TADOTable нет
var
Form8: TForm8;
implementation
{$R *.dfm}
uses Unit1, Unit_DM;
procedure af8(table: TDataSet); // описываю
begin
if table.fieldbyname('zayavka').asstring = 'Заявка' then
btn1.visible:=true;
end;
procedure TForm8.Button1Click(Sender: TObject); // вызываю
begin
af8(dm.table_name);
end; |
|
#6
|
||||
|
||||
|
Aristarh Dark, нет такого типа tdataset
|
|
#7
|
||||
|
||||
|
Да ну, а я то как лох им пользуюсь с прошлого века:
Цитата:
|
|
#8
|
||||
|
||||
|
Aristarh Dark,
да в смысле ошибку выдает [DCC Error] Unit8.pas(31): E2003 Undeclared identifier: 'TDataSet' |
|
#9
|
||||
|
||||
|
Цитата:
Как я понял, товарищч Аристархус Даркус дал тебе в качестве примера тот код. Ясен перец, что под TDataSet он подразумевал конкретный контейнер, например ADOQuery. Последний раз редактировалось M.A.D.M.A.N., 13.02.2013 в 17:38. |
|
#10
|
||||
|
||||
|
Цитата:
вы вообще тему видели??? у меня контейнер ADOTable - неужели по коду не видно? если ставить TADOTable - ошибка тоже и под Ttable тоже самое может какой-то связи не хватает? я думал это элементарный вопрос |
|
#11
|
||||
|
||||
|
Код:
uses DB, ADODB, DBTables; |
| Этот пользователь сказал Спасибо Yurk@ за это полезное сообщение: | ||
Mrak (14.02.2013)
| ||
|
#12
|
||||
|
||||
|
А что-же вы процедуру af8 обидели? Она же у вас в контексте класса TForm8 объявлена, а вы ее выдернули оттуда. Ей скучно будет без своего класса.
|
| Этот пользователь сказал Спасибо Страдалецъ за это полезное сообщение: | ||
Mrak (14.02.2013)
| ||
|
#13
|
||||
|
||||
|
Цитата:
|
|
#14
|
||||
|
||||
|
Yurk@, Страдалецъ, спасибо, помогло)
|