我正在使用Delphi XE2和SQL Server 2005 Express。
我有一个名为maintenance的表,其中包含以下列:
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(Now)的所有活动,并警告用户有活动要做。 / p>
我的问题是我希望当天在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上的Tquery并且我添加了字段时,没有添加“day”字段,它不存在。我做错了什么,或者我怎样才能实现我想做的事情?。
答案 0 :(得分:0)
你说过tQuery吗? 如果我没记错的话,tQuery就是一个BDE组件。 BDE是过时的技术,建议使用更现代的方法连接数据库。
话虽这么说,BDE不知道如何处理Unicode字符串数据类型。 (我不确定在首次制作BDE时,Unicode是否存在。)
从SQL Server函数DateName返回的类型是nvarchar。 'n'表示它是一个Unicode字符串。
作为一种解决方法,您可以将结果转换为Ascii字符串。尝试这样的事情:
cast(datename(...)as varchar(20))