Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.11.11;
Скачать: [xml.tar.bz2];

Вниз

Доступ к форме Owner-у   Найти похожие ветки 

 
ИгорьК   (2002-10-31 15:07) [0]

Почему такой код работает:
...
var nb: integer;
begin
nb:=(Owner.FindComponent("qrPred") as TADOQuery).FieldByName("N_BASE").AsInteger;
qrUpdPred.Parameters.ParamValues["N_BASE"]:=nb;
end;

а такой говорит - "нарушение прав доступа":
...
begin
Parameters.ParamValues["N_BASE"]:=(Owner.FindComponent("qrPred") as TADOQuery).FieldByName("N_BASE").AsInteger;
end;


 
asmith   (2002-10-31 16:15) [1]

Поскольку оба примера не совсем эквивалентны (в первом случае присвоение идет qrUpdPred.Parameters.ParamValues["N_BASE"], а во втором Parameters.ParamValues["N_BASE"]), то, видимо, во втором случае имеется оператор with, который все и путает.


 
Владислав   (2002-10-31 16:28) [2]

Этот вопрос почти философский!

Ответь на следующие вопросы.
1. Что произойдет, если Owner = nil?
2. Что произойдет, если не существует компонент с именем "qrPred"?
3. Что произойдет, если компонент с именем "qrPred" не является TADOQuery или его наследником?
4. Что произойдет, если у объекта (Owner.FindComponent("qrPred") as TADOQuery) нет поля с именем "N_BASE"?

Часть ответов на мои вопросы - это ответы на твои вопросы. Другая часть - это ответы на твои возможные в будущем вопросы.


 
ИгорьК   (2002-10-31 17:39) [3]

Все на что я ссылаюсь - существует, ни каких "если" не может быть.


 
Владислав   (2002-10-31 18:17) [4]

Тебе видней...
Значит твое "нарушение прав доступа" возникает просто так. Напиши в техподдержку мелкософта...


 
Zemal   (2002-10-31 19:00) [5]

Мне кажется всё дело в этом AsInteger... используй Value, пример:
begin
Parameters.ParamValues["N_BASE"]:=(Owner.FindComponent("qrPred") as TADOQuery).FieldByName("N_BASE").Value;
end;
Или попробуй поставить у параметра в свойствах, что он Integer... наверняка у тебя там стоит Unknown.
Или попробуй ...ParamByName("N_BASE").Values, чем чёрт не шутит :), может заработает :).
Вообще это может быть из-за того же WITH... ведь Owner может быть разный для разных компонентов :), учти это :).


 
Zemal   (2002-10-31 19:02) [6]

Кстати, нажми на своём Owner комбинацию Ctrl+Space и посмотри как он там описан... тип у него TForm? гы-гы :)



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.11.11;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.007 c
3-33918
Andriano
2002-10-23 12:19
2002.11.11
Подскажите БД-новичку


3-33886
NeyroSpace
2002-10-22 16:50
2002.11.11
Как триггером прочитать из поля Blob sub_type 1 в VarChar()


7-34274
Keplin Sergey
2002-09-07 22:13
2002.11.11
Background file copy...


3-33873
Alessandro
2002-10-16 10:53
2002.11.11
Программа не запускается на других машинах


1-34076
MegaVolt
2002-10-30 17:26
2002.11.11
Как извлекать форму из репозитария и где хранятся её исходники?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский