В чем разница между AsInteger и Value в Delphi?



Я хочу знать разницу между следующими двумя утверждениями, связанными с наборами данных в delphi.



dsMyDataSet.ParamByName('ID').AsInteger := 1122; //If ID is integer
dsMyDataSet.ParamByName('ID').AsString := '1122'; //If ID is string


И



dsMyDataSet.ParamByName('ID').Value := 1122; //ID is string or integer


Имеют ли эти утверждения одинаковый смысл? Неявно ли" value " преобразует целое число в строку?
666   1  

1 ответ:

Например, свойство TParam.AsInteger задает значение и тип данных параметра. TParam.Value делает то же самое, но TParam решит, какой тип будет сопоставлен значению внутри Variant, и не всегда это тип данных, который вы хотели бы.

Я советую вам устанавливать значения, используя только свойства AsXXX, так как вы будете контролировать тип данных параметра, что может спасти вас от ошибок привязки параметров.

Итак, отвечая на ваш последний вопрос: значения не будут преобразованы в нужный тип данных, вы должны установить тип данных, выбрав нужное свойство, чтобы присвоить значение.

Comments

    Ничего не найдено.