Получить имя даты из SQL на DELPHI
Я использую Delphi XE2 и SQL Server 2005 Express.
У меня есть таблица с именем обслуживания со столбцами:
id Integer;
Activity Varchar(x); = actividad
Description Memo; = descripcion
Day Integer;= dia_sem
User Integer; = usuario
id, activity, description, day, user
Я использую эту таблицу для регистрации операций обслуживания, которые должны выполняться каждый день, так как в понедельник они должны убирать за x или y и т. Д., По вторникам они должны делать что-то еще и т. Д.
Я сохраняю день с 1 по 7 с воскресенья =1 до субботы =7, чтобы программа извлекала все действия, где queryday.text= DayOfWeek(сейчас), и предупреждала пользователей о том, что есть действия, которые нужно отменить.
Моя проблема в том, что я хочу показать в DBGrid день с полным именем, а не в виде числа.
Sunday
Monday
Tuesday etc.
На SQL я получаю полное имя дня, используя:
Select id AS ID, actividad AS Actividad, descripcion AS Descripcion,(datename(weekday, dia_sem-2)) AS Dia, usuario AS Usuario
from mantenimiento
я поставил dia_sem-2
так что это будет соответствовать день, я хочу (по-видимому, вторник =1)
Моя проблема заключается в том, что когда я добавляю этот запрос в запрос на delphi и добавляю поля, поле "день" не добавляется, оно не существует. Что я делаю неправильно или как я могу добиться того, что я пытаюсь сделать?
1 ответ
Вы сказали tQuery? Если я правильно помню, tQuery является компонентом BDE. BDE является устаревшей технологией, поэтому рекомендуется использовать более современный метод подключения к вашей базе данных.
При этом BDE не знает, как обращаться с строковым типом данных Unicode. (Я не уверен, что Unicode даже существовал, когда BDE был впервые сделан.)
Тип, возвращаемый функцией SQL Server DateName - nvarchar. 'N' означает, что это строка Unicode.
В качестве обходного пути вы можете привести результат к строке Ascii. Попробуйте что-то вроде этого:
приведение (дата (...) как varchar(20))