Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Delphi


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Delphi

Выпуск № 1159
от 18.08.2008, 18:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 405, Экспертов: 27
В номере:Вопросов: 1, Ответов: 2

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>


Вопрос № 141411: Доброго времени суток уважаемы эксперты! Хочу написать класс, который будет работать с б.д. Классу доступен компонент ADOConnection, в конструкторе динамически создается TADOQuery, и метод класса возвращает TDataSet. Возникает ошибка в процессе вы...

Вопрос № 141.411
Доброго времени суток уважаемы эксперты!
Хочу написать класс, который будет работать с б.д. Классу доступен компонент ADOConnection, в конструкторе динамически создается TADOQuery, и метод класса возвращает TDataSet. Возникает ошибка в процессе выполнения программы (не может создать объект TADOQuery). Как написать правильное создание. Спасибо.

Приложение:

Отправлен: 13.08.2008, 18:16
Вопрос задал: Андрей097 (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: Виктор Пырлик
Здравствуйте, Андрей097!

Во первых, ошибка в объявлении приватного члена:
у вас написано - adoquery: T TADOQuery; лишняя буква Т..
во вторых, в секцию uses надо добавить модуль ADODB

код главной формы, откуда вызывается ваш класс
Код:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, StdCtrls, Grids, DBGrids;

type
TForm1 = class(TForm)
ADOConnection1: TADOConnection;
ADOTable1: TADOTable;
ADOQuery1: TADOQuery;
DBGrid1: TDBGrid;
Button1: TButton;
DataSource1: TDataSource;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var tf:TTelephon;
begin
tf := TTelephon.Create;
DataSource1.DataSet := tf.Query;
end;

end.


модуль вашего класса
Код:
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes,
Dialogs, DB, ADODB;

type
TTelephon = class(TObject)
private
adoquery: TADOQuery;
public

constructor Create;
destructor Destroy;
function Select(Sorting:string):TDataSet;
function Query:TDataSe t;

end;

implementation

uses Unit3; // это модель DM

//------------------------------------------------------------------------------
constructor TTelephon .Create;
begin
adoquery:= TADOQuery.Create(nil); //где DM-дата модуль <-Ошибка при выполнении
adoquery.Connection:= DM.ADOConnection1;
end;
//------------------------------------------------------------------------------
destructor TTelephon .Destroy;
begin
adoquery.Destroy;
end;
//------------------------------------------------------------------------------
function TTelephon.Query:TDataSet;
begin
adoquery.SQL.Text:='select * from dbo.ViewTotalOper';
adoquery.active:=true;
result:=adoquery;
end;

function TTelephon.Select(Sorting: string): TDataSet;
begin

end;
end.

---------
Если ничего не помогло - надо читать инструкцию
Ответ отправил: Виктор Пырлик (статус: Профессионал)
Россия, Полевской
Тел.: 89043822027
ICQ: 490191733
----
Ответ отправлен: 14.08.2008, 14:28

Отвечает: Antony Belov
Здравствуйте, Андрей097!

У вас множество недочетиков. Вот так будет выглядеть этот кусок класса, как в приложении.
Код нк проврял, сейчас под рукой нет среды разработки.

Приложение:

Ответ отправил: Antony Belov (статус: 1-ый класс)
Ответ отправлен: 15.08.2008, 05:41
Оценка за ответ: 5
Комментарий оценки:
Спасибо.


Вы имеете возможность оценить этот выпуск рассылки.
Нам очень важно Ваше мнение!
Оценить этот выпуск рассылки >>

Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2008, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале

∙ Версия системы: 5.1 beta(win) от 11.08.2008

Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное