Страница 1 из 1

select при работе с базой nhsms.mdb

Добавлено: 09 мар 2017, 14:40
sxx
Прошу прощения за много вопросов :?
Работаю со стандартной акцессовской базой nhsms. И не удается получить данные из таблицы nhsms при помощи nhdbt.

1. Вставляем строку, все в порядке, СМС отправляется:

Код: Выделить всё

nhdbt.exe "Microsoft Access driver (*.mdb)" DBQ=C:\nhsms\bin\nhsms.mdb;uid=admin

SQL>insert into nhsms (PhoneNumber,MessageText) VALUES('79211234567','Test message');
insert into nhsms (PhoneNumber,MessageText) VALUES('79211234567','Test message');
Изменено строк: 1. Нет выбранных строк. Время выполнения 0.000 с.
2. Пробую выбрать только что вставленную строку:

Код: Выделить всё

SQL>select * from nhsms where MessageID = (select max(MessageID) from nhsms);
Или так:

Код: Выделить всё

SQL>select MessageText from nhsms where MessageID = (select max(MessageID) from nhsms);
select MessageText from nhsms where MessageID = (select max(MessageID) from nhsms);

-----------

Нет измененных строк. Выбрано строк: 1. Время выполнения 0.000 с.
Вывод копипастить не решусь, лучше сделаю скриншот (во вложении) :)
Т.е. вместо названий и значений столбцов много пробелов.
То же самое при использовании файла запросов SQL (с ключами и без dataonly и cs:,).

В чем может быть причина?
Спасибо!

Re: select при работе с базой nhsms.mdb

Добавлено: 09 мар 2017, 15:54
nhutils
sxx писал(а):вместо названий и значений столбцов много пробелов.
Причина в типе и размере поля. Например, PhoneNumber и MessageText - это по умолчанию NVARCHAR(4000).
Можно написать запрос так:

Код: Выделить всё

select rtrim(MessageText) from nhsms where MessageID = (select max(MessageID) from nhsms);

Re: select при работе с базой nhsms.mdb

Добавлено: 09 мар 2017, 20:36
sxx
Вот оно оказывается что :)
Спасибо!