Внутри.Ms Access преобразование данных в запросах

компьютеры программы базы данных делфи

Имеется таблица с числовым типом данных по отношению к которой используется запрос на обновление. Значение которое обновляет состоит из функции Left. которое по документам возвращает Variant. Однако после применения этой функции данные не добавляются в столбец по причине того что столбец числового типа а Left возвращает Variant. Функцией конвертации CDec не получается,так как она конвертирует из строки. Нашел функцию FormatNumber, но с ней также выдается сообщение о несоответсвии типов. Какие мысли?
Ответы:
Left должно возвращать строку (если это не какой-то "свой LEFT" :-) )
если,непосредственно в MS Access, создать запрос
UPDATE Table1 SET id=Left('98765',2) WHERE Id=7;
где Id - числовое поле
то такой запрос вполне нормально обновит данные (запишет в поле ID значение 98 для всех записей, у которых Id был равен 7). Т.е. Access сам выполнит неявное преобразование данных.
Проверено на Access 2007
Если для доступа к Access используются другие компоненты, например ADO, то там данные, скорее всего, нужно подготовить. Например так:
UPDATE Table1 SET id=CAST(Left('98765',2) As Int) WHERE Id=7;


14 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.