1

我正在使用 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(Now) 的所有活动,并警告用户有活动要完成。

我的问题是我想在 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”字段,它不存在。我做错了什么或者我怎样才能实现我想要做的事情?

4

1 回答 1

0

你说的是 tQuery 吗?如果我没记错的话,tQuery 是一个 BDE 组件。BDE 是过时的技术,建议使用更现代的方法连接到您的数据库。

话虽如此,BDE 不知道如何处理 Unicode 字符串数据类型。(我不确定在第一次制作 BDE 时是否存在 Unicode。)

从 SQL Server 函数 DateName 返回的类型是 nvarchar。'n' 表示它是一个 Unicode 字符串。

作为一种解决方法,您可以将结果转换为 Ascii 字符串。尝试这样的事情:

强制转换(日期名称(...)作为 varchar(20))

于 2013-09-26T22:15:11.077 回答