Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.09.2009, 11:59   #1
Persik
Новичок
Джуниор
 
Регистрация: 09.09.2009
Сообщений: 2
По умолчанию Устранить не совместимость типов

Помогите плиз с ошибкой. Работаю с делфи недавно. Пытаюсь сохранить введенные данные в Комбобоксе. но получаю ошибку: Could not convert variant of type (Null) into type (Integer). Все стопорится на выражении Purpose.ItemIndex := nz(Query(Format(SQLGetData,[data_id,'Purpose']))); Не понимает левую часть, чему присваевается выражение.
И не могу сохранить введенные данные. т.к говорит, что Данные заблокированы.

Код:
procedure GetValue;
const
       SQLGetData =   
           'select VAR_VALUE'+
           '  from get_object_data(%d, upper(''%s''))';              
var TmpStr : string;                                
ttt: variant;                               
begin 
        showmessage(data_id);                                         //0
        showmessage(vartoStr(Purpose.Items.Count));    //5
                              
        if Nz(Query(Format(SQLGetData,[data_id,'Purpose'])))<>0
        then Purpose.ItemIndex := nz(Query(Format(SQLGetData,[data_id,'Purpose'])));
        Purpose.OnChange:='ValueOnChange';
        showmessage('end');                                             //не выполняется

procedure ValueOnChange(Sender: TfrxComponent);
begin
  if UpdateVariables.IndexOfObject(Sender)<0 then                                                            
    UpdateVariables.AddObject(Sender.Name,Sender);
  ModifyObject;
end;

Последний раз редактировалось Stilet; 09.09.2009 в 12:47.
Persik вне форума Ответить с цитированием
Старый 09.09.2009, 12:01   #2
postal2
Форумчанин
 
Аватар для postal2
 
Регистрация: 31.10.2008
Сообщений: 215
По умолчанию

Что за функция nz и что за программу вы пишите - возможно есть более простой способ реализации того, что вы написали.

Цитата:
Could not convert variant of type (Null) into type (Integer).
в ошибке написано, что нет входных данных т.е. по сути конвертировать то нечего (невозможно конвертировать пустоту в целое число - дословно)
[Ferox]
postal2 вне форума Ответить с цитированием
Старый 09.09.2009, 12:13   #3
Persik
Новичок
Джуниор
 
Регистрация: 09.09.2009
Сообщений: 2
По умолчанию

nz - not zero
в коментах к showmessage я написала, что выводит значение. data_id = 0, а не пустоту.
Выражение
Код:
if Nz(Query(Format(SQLGetData,[data_id,'Purpose'])))<>0
        then nz(Query(Format(SQLGetData,[data_id,'Purpose'])));
он кушает спокойно.
А вот присвоение номера выбранного значения комбабокса он никак не хочет понимать. Это значение я и пытаюсь сохранить.
Код написан для обработки данных в карточках FastReports

Последний раз редактировалось Stilet; 09.09.2009 в 12:47.
Persik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Устранить ошибку в коде Divoha Общие вопросы C/C++ 11 27.06.2009 15:13
Оптимизировать и помочь устранить ошибки. Picaso18 Паскаль, Turbo Pascal, PascalABC.NET 1 26.01.2009 23:54
Устранить ошибку AlenaBEL Помощь студентам 7 23.11.2008 15:00
Совместимость типов DeDoK Общие вопросы Delphi 2 06.05.2008 21:28