Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Variant := := StrToInt('1') приводит к исключению, почему?


Страницы:   1 2

Kolan ©   (2007-10-16 16:05:00) 

Сабж.

Делаю так:
function TQuestion.GetVariantFromValue: Variant;
begin
 Result := 1;
 case FDataType of
   dtInteger:
     Result := StrToInt('1');
   dtFloat:
     Result := StrToFloat(Value);
   dtString:
     Result := Value;
   dtDateTime:
     Result := StrToDateTime(Value);
 end;
end;


А может мне это вообще не надо.

Есть ADOQuery
И параметр в запросе. Вот в этот параметр надо положить значание. Значение — это всегда строка, а параметр любой, например int, может можно обойтись без GetVariantFromValue?
…
Query.Parameters.FindParam(S).Value := '1';


Reindeer Moss Eater   (2007-10-16 16:28:00) [21]

Что за исключение-то?
Щас выяснится, что там обычный AV.


Kolan   (2007-10-16 16:27:00) [22]

> Может и да, но зачем заставлять компьютер делать какую-то
> неочевидную работу?

Query.Parameters.FindParam(S).AsString
Я не незнаю AsЧто когда пишу ког, это выясняется только в ран тайме…


KSergey   (2007-10-16 16:23:00) [23]

> Kolan ©   (16.10.07 16:21) [12]
> Если я сделаю так:
> Query.Parameters.FindParam(S).Value := '1';
>
> А в запросе параметр должен быть int он сам перекодирует?
>

Может и да, но зачем заставлять компьютер делать какую-то неочевидную работу?


Игорь Шевченко   (2007-10-16 16:22:00) [24]


> Query.Parameters.FindParam(S).Value := '1';


Query.Parameters.FindParam(S).AsString := '1' ?


Kolan   (2007-10-16 16:21:00) [25]

Блин видно причина не в этом…
Вызывал так:
Query.Parameters.FindParam(S).Value := Report.Questions[I].GetVariantFromValue

А FindParam возвращяло nil… отсюда и ав.

Я не пойму.
Если я сделаю так:
Query.Parameters.FindParam(S).Value := '1';

А в запросе параметр должен быть int он сам перекодирует?


Ega23   (2007-10-16 16:20:00) [26]


> Ega23 ©   (16.10.07 16:19) [9]


Пардон, с IntToStr перепутал


KSergey   (2007-10-16 16:20:00) [27]

> KSergey ©   (16.10.07 16:19) [8]
> Вариант в посте ...

Имелось в виду "Вариант программы, приведенный в изначальном посте".


Ega23   (2007-10-16 16:19:00) [28]

StrToInt('1');

Кавычки для кого?


KSergey   (2007-10-16 16:19:00) [29]

> Kolan ©   (16.10.07 16:09) [1]
> Variant := StrToInt('1')
> Ессо

Вот это как раз не "ессо".
Это зачем?? Вариант в посте ведь верный (на вид). В нем magic переменная Result имеет тип Variant.
А что написано в [1]  и куда и зачем = мне не понятно.


Kolan   (2007-10-16 16:18:00) [30]

> А где это видно что ты хочешь?

Result :=
Вот хочу и присваиваю к Result…


Reindeer Moss Eater   (2007-10-16 16:16:00) [31]

А где это видно что ты хочешь?


Kolan   (2007-10-16 16:14:00) [32]

> Потому что «variant» — неудачное имя для идентификатора

Так я хочу вернуть тип Variant, почему не удачное?


Reindeer Moss Eater   (2007-10-16 16:13:00) [33]

Потому что "variant" - неудачное имя для идентификатора


Kolan   (2007-10-16 16:11:00) [34]

> К исключению приводит не StrToInt

Да, а присвоение к Variant(имхо), а почему?


Reindeer Moss Eater   (2007-10-16 16:10:00) [35]

К исключению приводит не StrToInt


Kolan   (2007-10-16 16:09:00) [36]

Variant := StrToInt('1')
Ессо


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо