2013-09-26 4 views
1

나는 델파이 XE2 및 SQL Server 2005 Express를 사용합니다.DELPHI의 SQL에서 데이터 이름 가져 오기

나는 열이있는 테이블라는 이름의 유지 보수가 : 그들은 X 또는 뒤에 청소해야 월요일에로

id Integer; 
Activity Varchar(x); = actividad 
Description Memo; = descripcion 
Day Integer;= dia_sem 
User Integer; = usuario 

id, activity, description, day, user 

내가 매일의 던해야 유지 보수의 활동을 등록하려면이 테이블을 사용을 y 등, 화요일에 다른 것들을해야합니다.

나는 1에서 7까지 일요일을 저장하므로, 프로그램은 모든 활동을 검색 할 것입니다. queryday.text = DayOfWeek (Now) 사용자에게 donne이 될 활동이 있음을 경고합니다.

내 문제는 내가 DBGrid에 숫자로 표시되지 않고 전체 이름으로 표시하려고한다는 것입니다.

내 문제는 때이다 (분명히 화요일 = 1)

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을 설정 SQL에

Sunday 
Monday 
Tuesday etc. 

은 내가 사용하여 하루 종일 이름을 가져 나는이 쿼리를 델파이의 Tquery에 추가하고 필드를 추가한다. "day"필드는 추가되지 않는다. 존재하지 않는다. 나는 무엇을 잘못하고 있는가? 또는 어떻게해야 할 일을 성취 할 수 있습니까?

답변

0

tQuery라고 했습니까? 올바르게 기억하면 tQuery는 BDE 구성 요소입니다. BDE는 더 이상 사용되지 않는 기술이며 더 최신의 데이터베이스 연결 방법을 사용하는 것이 좋습니다.

BDE는 유니 코드 문자열 데이터 유형을 처리하는 방법을 알지 못합니다. (유니 코드가 BDE가 처음 만들어 졌을 때도 존재하지는 않습니다.)

DateName 함수에서 반환 된 형식은 nvarchar입니다. 'n'은 유니 코드 문자열임을 의미합니다.

해결 방법으로 결과를 Ascii 문자열로 캐스팅 할 수 있습니다. 다음과 같이 시도하십시오.

캐스트 (데이터 이름 (...)으로 varchar (20))

+0

감사합니다. 이제는 TQuery가 쓸모 없다고 언급 했으므로 Tquery 대신 사용해야하는 점을 알려줄 수 있습니까? 좋은 하루 되세요 !! @ user1008646 –

+0

저는 최신 델파이 데이터베이스 기술에 관해서는 공룡이라고 생각합니다. 몇 년 동안 BDE를 사용했고 ADO (tAdoConnection, tAdoQuery)로 많은 성공을 거두었으므로 아직 익숙하지 않은 dbExpress 및 DataSnap과 같은 최신 기술이 있다는 것을 알고 있습니다. 더 많은 정보를 얻은 델파이 전문가가 자신의 의견을 제공하기를 바랍니다. –

관련 문제