В чем разница между 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 " преобразует целое число в строку?
1 ответ:
Например, свойство
TParam.AsIntegerзадает значение и тип данных параметра.TParam.Valueделает то же самое, ноTParamрешит, какой тип будет сопоставлен значению внутриVariant, и не всегда это тип данных, который вы хотели бы.Я советую вам устанавливать значения, используя только свойства
AsXXX, так как вы будете контролировать тип данных параметра, что может спасти вас от ошибок привязки параметров.Итак, отвечая на ваш последний вопрос: значения не будут преобразованы в нужный тип данных, вы должны установить тип данных, выбрав нужное свойство, чтобы присвоить значение.
Comments