Перейти к содержимому

Фотография

Получение значения DataSet.Field[].Value в Delphi-приложении


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 5

#1 pipe

pipe

    Новый участник

  • Members
  • Pip
  • 3 сообщений
  • ФИО:Винокур Александр

Отправлено 03 февраля 2010 - 14:25

IDE Delphi 6 (Build 6.240) (библиотека Odac версии 3.50.2.38)
БД Oracle 9
TestComplete 7 (7.50.653.7) (DelphiScript)

Приложение откомпилировано как OpenApp.
В одной из форм типа Wizard тестируемого приложения необходимо установить значение DataSet.Fields[].Value, значения полей которого изменяются на каждом шаге визарда. DataSet является общим для всех визуальных компонентов формы. В Object Browser'е искомое свойство и подходящие методы объекта не обнаружены.

Есть ли возможные варианты решения?

P.S. для некоторых визуальных компонентов на форме есть возможность получить значение, но хотелось бы получить доступ к указанному DataSet.Field.Value (или что-то типа Fields[].Value)

Спасибо за ответы.
  • 0

#2 Dmitry N

Dmitry N

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 742 сообщений
  • ФИО:Николаев Дмитрий
  • Город:Где-то в России

Отправлено 04 февраля 2010 - 06:54

Здравствуйте.

Попробуйте это:
DataSet.FieldByName('FieldName').Value := value;

  • 0
С уважением,
Дмитрий

#3 pipe

pipe

    Новый участник

  • Members
  • Pip
  • 3 сообщений
  • ФИО:Винокур Александр

Отправлено 04 февраля 2010 - 08:22

Здравствуйте.

Попробуйте это:

DataSet.FieldByName('FieldName').Value := value;


Пробовал. Не получилось: оишбка "Unknown name: FieldByName".
Тоже самое получил при попытке повторить пример:
http://www.automated...ite=FieldByName.

Все plugin'ы, входящие в поставку TestComplete включены.
Может я что-то должен дополнительно подключить?
  • 0

#4 Dmitry N

Dmitry N

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 742 сообщений
  • ФИО:Николаев Дмитрий
  • Город:Где-то в России

Отправлено 10 февраля 2010 - 11:45

Здравствуйте.

Скорее всего, объект DataSet с которым вы работаете, является внутренним объектов вашего приложения. Спросите у разработчиков приложения как работать именно с этим объектом и, вероятно, вы сможете использоватеь именно этот же код и в ваших тестах.
  • 0
С уважением,
Дмитрий

#5 pipe

pipe

    Новый участник

  • Members
  • Pip
  • 3 сообщений
  • ФИО:Винокур Александр

Отправлено 15 февраля 2010 - 07:33

Здравствуйте.

Скорее всего, объект DataSet с которым вы работаете, является внутренним объектов вашего приложения. Спросите у разработчиков приложения как работать именно с этим объектом и, вероятно, вы сможете использоватеь именно этот же код и в ваших тестах.


Спасибо за совет. Но я вхожу в команду разработчиков. Объект DataSet является наследником VCL-класса TDataSet.
Пробовал обращаться к методу DataSet.FieldByName => получил ошибку Unknown name: FieldByName.
В проекте используется Delphi версии 6 (Update pack 2) и Odac версии 3.5. Компонент TOraQuery является наследником TDataSet, что в свою очередь делает доступным такой метод как FieldByName. Для меня не понятно почему в окне Object Mapping не отображается этот метод.
Пробовал создать простое делфийское приложение с одним визуальным DbGrid и 2 невизуальными компонентами Table и DataSource. Использовал исключительно стандартные компоненты. Приложение сделал OpenApp. И все равное в Object Mapping не отображается метод FieldByName. :-(
  • 0

#6 Dmitry N

Dmitry N

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 742 сообщений
  • ФИО:Николаев Дмитрий
  • Город:Где-то в России

Отправлено 16 февраля 2010 - 07:56

Здравствуйте.

У меня подозрение, что ваше приложение откомпилированно без отладочной информации. В этом случае TestComplete не может получить доступ ко всем свойствам и методам объектов приложение. Перекомпилируйте приложение согласно шагам в разделе справки Using Debug Info Agent With Delphi Applications.
  • 0
С уважением,
Дмитрий


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных