Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Синтаксис
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 13.02.2013, 14:47
Аватар для Mrak
Mrak Mrak вне форума
Местный
 
Регистрация: 26.01.2013
Адрес: МО
Сообщения: 438
Версия Delphi: XE2
Репутация: 17
По умолчанию процедура с параметром adotable

Здравствуйте!
Есть код, который будет повторяться много раз. В нем изменяется только имя таблицы adotable. Как оформить его в процедуру с параметром имени таблицы?
__________________
Я за здоровый экстрим!
Спасибо за "спасибо")
Ответить с цитированием
  #2  
Старый 13.02.2013, 15:04
Аватар для Yurk@
Yurk@ Yurk@ вне форума
Специалист
 
Регистрация: 07.09.2007
Адрес: Украина, г. Днепропетровск
Сообщения: 892
Версия Delphi: 7 + ОгнеПтица
Репутация: выкл
По умолчанию

Код:
procedure TableOperations(FTableName : string);
begin
  ADOTable.Close;
  ADOTable.TableName := FTableName;
  // и т.д.
  // и т.п.
end;
__________________
Поживу - увижу, Доживу - узнаю, Выживу - учту.
[P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
Ответить с цитированием
  #3  
Старый 13.02.2013, 15:04
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Ну если реально "имя таблицы", то:
Код:
procedure SomeProc(ATableName:string)
begin
...
end;
а если объект-таблица, то:
Код:
procedure SomeProc(ADOTable:TADOTable)
begin
...
end;
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
Этот пользователь сказал Спасибо Aristarh Dark за это полезное сообщение:
Mrak (14.02.2013)
  #4  
Старый 13.02.2013, 15:56
Аватар для Mrak
Mrak Mrak вне форума
Местный
 
Регистрация: 26.01.2013
Адрес: МО
Сообщения: 438
Версия Delphi: XE2
Репутация: 17
По умолчанию

вот с кодом понятней будет
впервые пользую процедуры, вроде все верно по объявлению-описанию-вызову
Код:
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  
Старый 13.02.2013, 16:04
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Если использовать именно в таком контексте, то:
Код:
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  
Старый 13.02.2013, 16:28
Аватар для Mrak
Mrak Mrak вне форума
Местный
 
Регистрация: 26.01.2013
Адрес: МО
Сообщения: 438
Версия Delphi: XE2
Репутация: 17
По умолчанию

Aristarh Dark, нет такого типа tdataset
__________________
Я за здоровый экстрим!
Спасибо за "спасибо")
Ответить с цитированием
  #7  
Старый 13.02.2013, 16:34
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Да ну, а я то как лох им пользуюсь с прошлого века:
Цитата:
Сообщение от Delphi Help
Show: Delphi C++
Display PreferencesDB.TDataSetFrom RAD Studio VCL Reference
Up to Parent: DB Constructors & Destructors Functions Properties Events Inherited Members

Delphi

TDataSet = class(TComponent, IProviderSupport)C++

class PASCALIMPLEMENTATION TDataSet : public Classes::TComponent[edit] Properties
Type Visibility Source Unit Parent
class public DB.pas
DB.hpp DB DB

[edit] Description

TDataSet is the base class for all dataset components that represent data in rows and columns.




TDataSet introduces the basic properties, events, and methods for working with data.

Many of these properties, events, and methods are abstract (Delphi) or pure virtual (C++) in TDataSet. Abstract or pure virtual declarations are declarations without implementations. At the TDataSet level they cannot be used or accessed. Developers must use or derive descendants of TDataSet that redeclare and implement these abstract or pure virtual methods. Many of the other TDataSet methods are declared and implemented in TDataSet as virtual methods, but the implementations are merely stubs that are reimplemented in descendants.

TDataSet has two several descendants: TCustomADODataSet, TIBCustomDataSet, TCustomSQLDataSet, TCustomClientDataSet and TWideDataSet.

TBDEDataSet is the base class for datasets that access their data using the Borland Database Engine (BDE). TBDEDataSet descendants include TTable, TQuery, and TStoredProc. Developers who create custom dataset components that use the BDE derive them from TBDEDataSet, TDBDataSet, TQuery, TStoredProc, or TTable.

TCustomADODataSet is the base class for datasets that access their data using ActiveX Data Objects (ADO). TCustomADODataSet descendants include TADODataSet, TADOTable, TADOQuery, and TADOStoredProc. Developers who create custom dataset components that use ADO derive them from CustomADODataSet.

TIBCustomDataSet is the base class for datasets that directly access the data in InterBase tables. TIBCustomDataSet descendants include TIBDataSet, TIBTable, TIBQuery, and TIBStoredProc. Developers who create custom dataset components that directly access data in an InterBase database derive from TIBCustomDataSet.

TCustomSQLDataSet is the base class for unidirectional datasets. Unidirectional datasets are read-only datasets that permit only forward navigation. TCustomSQLDataSet descendants include the dbExpress datasets TSQLDataSet, TSQLQuery, TSQLTable, and TSQLStoredProc. Developers who create custom dataset components that use dbExpress to access their data derive from TCustomSQLDataSet.

TCustomClientDataSet is the base class for in-memory datasets. Client datasets can work with data from files on disk or with data provided by another component via a provider. They cache that data in memory, maintain a record of any changes in a change log, and apply cached updates at a later point back to the source of the data. Developers who create custom datasets that store their data in an in-memory cache derive from TCustomClientDataSet.

TWideDataSet provides dataset support for wide strings.

Developer's can also derive custom dataset components directly from TDataSet, providing their own mechanisms for accessing and manipulating the data.

[edit] See Also
TClientDataSet
TWideDataSet
TSQLTable
TSQLQuery
TSQLStoredProc
TSQLDataSet
TBDEDataSet
TDBDataSet
TQuery
TStoredProc
TTable
TADODataSet
TADOTable
TADOQuery
Marking and Returning to Records
Understanding Datasets: Overview
Distributing Database Applications
Connecting to Databases with TDatabase
DBExpress Controls
WebSnap Controls
Retrieved from "http://localhost/VCL/XE/e/index.php/DB.TDataSet"
Categories: API Documentation | Missing SourceCode
Help Feedback Copyright(C) 2010 Embarcadero Technologies, Inc. All Rights Reserved.
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #8  
Старый 13.02.2013, 16:41
Аватар для Mrak
Mrak Mrak вне форума
Местный
 
Регистрация: 26.01.2013
Адрес: МО
Сообщения: 438
Версия Delphi: XE2
Репутация: 17
По умолчанию

Aristarh Dark,
да в смысле ошибку выдает [DCC Error] Unit8.pas(31): E2003 Undeclared identifier: 'TDataSet'
__________________
Я за здоровый экстрим!
Спасибо за "спасибо")
Ответить с цитированием
  #9  
Старый 13.02.2013, 17:32
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Цитата:
Сообщение от Mrak
Aristarh Dark,
да в смысле ошибку выдает [DCC Error] Unit8.pas(31): E2003 Undeclared identifier: 'TDataSet'
Ошибка тебе о чем-то говорит?

Как я понял, товарищч Аристархус Даркус дал тебе в качестве примера тот код. Ясен перец, что под TDataSet он подразумевал конкретный контейнер, например ADOQuery.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию

Последний раз редактировалось M.A.D.M.A.N., 13.02.2013 в 17:38.
Ответить с цитированием
  #10  
Старый 13.02.2013, 18:02
Аватар для Mrak
Mrak Mrak вне форума
Местный
 
Регистрация: 26.01.2013
Адрес: МО
Сообщения: 438
Версия Delphi: XE2
Репутация: 17
По умолчанию

Цитата:
Сообщение от M.A.D.M.A.N.
Ошибка тебе о чем-то говорит?

Как я понял, товарищч Аристархус Даркус дал тебе в качестве примера тот код. Ясен перец, что под TDataSet он подразумевал конкретный контейнер, например ADOQuery.
тот код дал я, а товарищ модератор в нем исправил.
вы вообще тему видели??? у меня контейнер ADOTable - неужели по коду не видно?
если ставить TADOTable - ошибка тоже и под Ttable тоже самое

может какой-то связи не хватает?
я думал это элементарный вопрос
__________________
Я за здоровый экстрим!
Спасибо за "спасибо")
Ответить с цитированием
  #11  
Старый 13.02.2013, 18:09
Аватар для Yurk@
Yurk@ Yurk@ вне форума
Специалист
 
Регистрация: 07.09.2007
Адрес: Украина, г. Днепропетровск
Сообщения: 892
Версия Delphi: 7 + ОгнеПтица
Репутация: выкл
По умолчанию

Код:
uses 
  DB, ADODB, DBTables;
__________________
Поживу - увижу, Доживу - узнаю, Выживу - учту.
[P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
Ответить с цитированием
Этот пользователь сказал Спасибо Yurk@ за это полезное сообщение:
Mrak (14.02.2013)
  #12  
Старый 13.02.2013, 19:28
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

А что-же вы процедуру af8 обидели? Она же у вас в контексте класса TForm8 объявлена, а вы ее выдернули оттуда. Ей скучно будет без своего класса.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
Этот пользователь сказал Спасибо Страдалецъ за это полезное сообщение:
Mrak (14.02.2013)
  #13  
Старый 13.02.2013, 19:36
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Цитата:
Сообщение от Mrak
вы вообще тему видели???
Читал, создалось впечатление, что вы не умеете самостоятельно принимать решения.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #14  
Старый 14.02.2013, 09:21
Аватар для Mrak
Mrak Mrak вне форума
Местный
 
Регистрация: 26.01.2013
Адрес: МО
Сообщения: 438
Версия Delphi: XE2
Репутация: 17
По умолчанию

Yurk@, Страдалецъ, спасибо, помогло)
__________________
Я за здоровый экстрим!
Спасибо за "спасибо")
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 10:30.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter