1/1页1 跳转到查看:2310
发新话题 回复该主题

ACCESS日期精确查询函数

ACCESS日期精确查询函数

///////////////////////////////////////////////////////////////////////ؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
//ؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
//    作者: 付伟ؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
//ؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
//    日期: 2007-06-15ؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
//ؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
//    TEL : 13655310832ؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
//ؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
///////////////////////////////////////////////////////////////////////ؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
unit Func_Sql;ؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
ؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
interfaceؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
usesؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
        SysUtils,ComCtrls,Dialogs;ؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
//下面的函数用来处理ACCESS日期类查询的精确查询问题ؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
//如,时间范围在 09:59:59 时,10:00:00的记录不应该被选择.ؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
//条件中的'预约时间'字段,是数据库内指定字段,应该在这里指定ؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
ؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
// MoreThan 处理 条件 ' >= A '的SQLؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
procedure MoreThan( m_date,m_time : TDateTimePicker ; const s_field : string ;var s_sql : string );ؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
procedure LessThan( m_date,m_time : TDateTimePicker ; const s_field : string ;var s_sql : string );ؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
implementationؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
procedure LessThan( m_date,m_time : TDateTimePicker ; const s_field : string ;var s_sql : string );ؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
varؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
    sqltxt : string;ؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
        pdate,ptime : PChar;ؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
beginؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
//        m_time.Format('yyyy-MM-dd hh:mm:ss')ؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
    GetMem( pdate , m_date.GetTextLen + 1 );ؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
    GetMem(ptime,m_time.GetTextLen + 1);ؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
        m_date.GetTextBuf( pdate , m_date.GetTextLen + 1 );ؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
        m_time.GetTextBuf( ptime , m_time.GetTextLen + 1 );ؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
        sqltxt := format('DatePart("yyyy",[%s]) <= DatePart("yyyy",''%s %s'')',[ s_field , pdate, ptime ]);ؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
        sqltxt := format('%s and DatePart("m",[%s]) <= DatePart("m",''%s %s'')',[ sqltxt, s_field , pdate,  ptime ]);ؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
        sqltxt := format('%s and DatePart("d",[%s]) <= DatePart("d",''%s %s'')',[ sqltxt, s_field , pdate,  ptime ]);ؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
        sqltxt := format('%s and DatePart("h",[%s]) <= DatePart("h",''%s %s'')',[ sqltxt, s_field , pdate,  ptime ]);ؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
        sqltxt := format('%s and DatePart("n",[%s]) <= DatePart("n",''%s %s'')',[ sqltxt, s_field , pdate,  ptime ]);ؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
        sqltxt := format('%s and DatePart("s",[%s]) <= DatePart("s",''%s %s'')',[ sqltxt, s_field , pdate,  ptime ]);ؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
        s_sql := sqltxt;ؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
        FreeMem( pdate );ؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
        FreeMem( ptime );ؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
end;ؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
ؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
procedure MoreThan( m_date,m_time : TDateTimePicker ; const s_field : string ;var s_sql : string );ؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
varؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
        sqltxt : string;ؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
        pdate,ptime : PChar;ؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
beginؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
//        m_time.Format('yyyy-MM-dd hh:mm:ss')ؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
    GetMem( pdate , m_date.GetTextLen + 1 );ؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
    GetMem(ptime,m_time.GetTextLen + 1);ؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
        m_date.GetTextBuf( pdate , m_date.GetTextLen + 1 );ؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
        m_time.GetTextBuf( ptime , m_time.GetTextLen + 1 );ؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
        sqltxt := format('DatePart("yyyy",[%s]) >= DatePart("yyyy",''%s %s'')',[ s_field , pdate, ptime ]);ؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
        sqltxt := format('%s and DatePart("m",[%s]) >= DatePart("m",''%s %s'')',[ sqltxt, s_field , pdate,  ptime ]);ؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
        sqltxt := format('%s and DatePart("d",[%s]) >= DatePart("d",''%s %s'')',[ sqltxt, s_field , pdate,  ptime ]);ؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
        sqltxt := format('%s and DatePart("h",[%s]) >= DatePart("h",''%s %s'')',[ sqltxt, s_field , pdate,  ptime ]);ؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
        sqltxt := format('%s and DatePart("n",[%s]) >= DatePart("n",''%s %s'')',[ sqltxt, s_field , pdate,  ptime ]);ؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
        sqltxt := format('%s and DatePart("s",[%s]) >= DatePart("s",''%s %s'')',[ sqltxt, s_field , pdate,  ptime ]);ؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
        s_sql := sqltxt;ؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
        FreeMem( pdate );ؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
        FreeMem( ptime );ؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
end;ؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
ؤ®[é5D›>www.mini188.comó÷9«¥å]«5h
end.ؤ®[é5D›>www.mini188.comó÷9«¥å]«5h

TOP

 
1/1页1 跳转到
发表新主题 回复该主题