![]() |
|
|
![]()
|
|
| holodnaya |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 75 Регистрация: 30.7.2008 Репутация: нет Всего: нет |
Здравствуйте, уважаемые!
Я столкнулась со следующей проблемой. Мне нужно в отдельном модуле описать класс, производный от TOracleQuery, таким образом, чтобы его методы были доступны в других модулях программы. Пишу вот так:
Первое, на что ругается Делфи - это следующая строка.
Потом ему не нравится строка, в которой объявляется переменная 'Passw' Мне непонятно почему. Session - это свойство класса TOracleQuery и при наследовании оно должно тоже передаваться дочернему классу. Методы определения переменных (DeclareVariable) тоже есть в родительском классе. Что я делаю не так? Можно ли вообще создавать класс таким образом, как указано выше (по сути, только конструктор добавляется, а процедуры остаются те же самые) или это некорректное объявление и процедуры (подобные DeclareVariable) надо объявлять в разделе public и описывать ниже? |
||||
|
|||||
| pseud |
|
|||
![]() Экспёрт Тыдыщ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1175 Регистрация: 18.5.2007 Где: Минск, Беларусь Репутация: 16 Всего: 40 |
какой ужас
я бы за такой код сделал тебя горячей для начала:
-------------------- Испытание чужого терпения можно считать успешным, если оно лопнуло... |
|||
|
||||
| holodnaya |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 75 Регистрация: 30.7.2008 Репутация: нет Всего: нет |
Ну хорошо. Я описываю конструктор таким образом.
А как его вызвать из другой формы, например, формы авторизации (FormLogon), причём OracleSession1 находится в отдельном DataModule, а не на форме авторизации.
Такая запись будет правильной? |
|||
|
||||
| pseud |
|
||||
![]() Экспёрт Тыдыщ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1175 Регистрация: 18.5.2007 Где: Минск, Беларусь Репутация: 16 Всего: 40 |
Logon - не давай таких имен
что-то типа этого:
-------------------- Испытание чужого терпения можно считать успешным, если оно лопнуло... |
||||
|
|||||
| holodnaya |
|
||||||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 75 Регистрация: 30.7.2008 Репутация: нет Всего: нет |
С конструктором разобрались
Теперь перейдём к другому моменту. Что касается этих строк
то при процедурном программировании , эти методы я использовала для определения переменных
Сейчас мне как эти переменные опредеклять? Попробовала следующим образом
И при вызове этой процедуры из другого модуля пишу, откуда записываются данные в переменные "Account" и "Passw"
Вообще можно ли при определении процедуры класса так много там всего написать? И сейчас выдает ошибку на строке
Смысл ошибки такой, что обращается по одному адресу, а читается другой Это сообщение отредактировал(а) holodnaya - 11.12.2008, 13:43 |
||||||||||
|
|||||||||||
| pseud |
|
||||||
![]() Экспёрт Тыдыщ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1175 Регистрация: 18.5.2007 Где: Минск, Беларусь Репутация: 16 Всего: 40 |
скроее всего на строке Execute, т.к. параметры ты забыла в кавычки взять. Authory - нет такого слова в английском языке. наверно этот код ты случайно сбда впаяла. он видимо написан в форме.
попробуй так:
и так в форме
Это сообщение отредактировал(а) pseud - 11.12.2008, 18:22 -------------------- Испытание чужого терпения можно считать успешным, если оно лопнуло... |
||||||
|
|||||||
| holodnaya |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 75 Регистрация: 30.7.2008 Репутация: нет Всего: нет |
Я использвоала предложенный вариант кода, но писалась ошибка, что Active, IsEmpty - неопределённые идентификаторы.
Вопрос: почему создаваемый класс не перенимает свойства от родительского класса TOracleQuery? Может быть, их надо переопределять? Заменила
Сейчас пишет, что идентификатор IsEmpty не определён. |
|||
|
||||
| pseud |
|
||||||||
![]() Экспёрт Тыдыщ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1175 Регистрация: 18.5.2007 Где: Минск, Беларусь Репутация: 16 Всего: 40 |
честно говоря, у меня нет такого класса кто ето? что за библиотека? какая версия дельфи? Добавлено через 3 минуты и 19 секунд IsEmpty - это паблик функция класса TDataSet - базового класса всех наборов данных.
предположу, что твой TOracleQuery - не наследник этого класса, а жаль. Добавлено через 4 минуты и 38 секунд тогда замени на
или
-------------------- Испытание чужого терпения можно считать успешным, если оно лопнуло... |
||||||||
|
|||||||||
| holodnaya |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 75 Регистрация: 30.7.2008 Репутация: нет Всего: нет |
Пишу на Делфи из Borland Developer Studio 2006.
TOracleQuery - объект из компонентов прямого доступа Direct Oracle Access, который устанавливается дополнительно. При этом используется библиотека Oracle. |
|||
|
||||
| pseud |
|
|||
![]() Экспёрт Тыдыщ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1175 Регистрация: 18.5.2007 Где: Минск, Беларусь Репутация: 16 Всего: 40 |
я использую Oracle Data Access Components (ODAC). раз твой TOracleQuery не знает функциии IsEmpty - следую моим рекомендация в пред. посте -------------------- Испытание чужого терпения можно считать успешным, если оно лопнуло... |
|||
|
||||
| holodnaya |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 75 Регистрация: 30.7.2008 Репутация: нет Всего: нет |
К сожалению, этого он тоже не знает. Это сообщение отредактировал(а) holodnaya - 12.12.2008, 18:04 |
|||
|
||||
| pseud |
|
|||
![]() Экспёрт Тыдыщ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1175 Регистрация: 18.5.2007 Где: Минск, Беларусь Репутация: 16 Всего: 40 |
т.е. он не может определить количества отобранных записей??? -------------------- Испытание чужого терпения можно считать успешным, если оно лопнуло... |
|||
|
||||
| holodnaya |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 75 Регистрация: 30.7.2008 Репутация: нет Всего: нет |
да, не может определить количесвто записей. Нашла, как можно определить
Но всё равно выделяет строку SQL.Clear;, а до закоментирования строки Close, при ошибке ссылался на неё в функции
Такое впечатление, что действительно свойства не наслёдуются. И ещё, я так понимаю, что по иерархий классов (по аналогии с обычными TQuery TDateset) TOracleQuery от TOracleDataSet должен наследовать некоторые свойства и методы. Это сообщение отредактировал(а) holodnaya - 12.12.2008, 22:11 |
||||||
|
|||||||
| pseud |
|
|||
![]() Экспёрт Тыдыщ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1175 Регистрация: 18.5.2007 Где: Минск, Беларусь Репутация: 16 Всего: 40 |
тогда извини нет у меня такого класса пальцем в небо не получилось -------------------- Испытание чужого терпения можно считать успешным, если оно лопнуло... |
|||
|
||||
| holodnaya |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 75 Регистрация: 30.7.2008 Репутация: нет Всего: нет |
И что же теперь делать? Использовать другие компоненты? Что касается ODAC, где это можно взять? Это сообщение отредактировал(а) holodnaya - 16.12.2008, 01:08 |
|||
|
||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |