如果我要我得单机与服务器得时间统一,是sql server,应该怎么写语句,我假设这个服务器得名字叫Myserver,sql 数据库的名字叫mydatabase 密码=123456 应该如何连接、赋值等等!谢谢老前辈!最好也给我一个例子,不知道哪个网站有这方面得资料!。希望能够得到老前辈得帮助。

解决方案 »

  1.   

    在DELPHI用ADOQUERY连接SQLSERVER服务器,然后在它的SQL.TEXT里写查询语句,
    VAR
    SQL_STR:STRING;
    SERVER_TIME:STRING;
    BEGIN
    SQL_STR:='';
    SQL_STR:= SQL_STR+'Provider=SQLOLEDB.1; ';
    SQL_STR:=SQL_STR+'Password=123456;';
    SQL_STR:=SQL_STR+''Persist Security Info=True;';
    SQL_STR:=SQL_STR+'User ID=sa;';
    SQL_STR:=SQL_STR+'Initial Catalog=mydatabase;';
    SQL_STR:=SQL_STR+'Data Source=MYserver';
    WITH ADOQUERY1 DO 
      BEGIN
        CLOSE;
        CONNECTIONSTRING:=SQL_STR;
        SQL.CLEAR;
        SQL.ADD('SELECT GETDATE AS 服务器时间');
        OPEN;
        SERVER_TIME:=FIELDBYNAME('服务器时间').ASSTRING;  //这就是服务器当前时间
      END;
    END;
      

  2.   

    //设置系统时间为服务器时间
    function setdate: Integer;
    var
      systemtime: TSystemTime;
    begin
      with dm.ADOQuery1 do
      begin
        Close;
        SQL.Clear;
        SQL.Text := 'Select GETDATE() as date';
        Open;
        DatetimeToSystemtime(FieldByName('date').AsDateTime, systemtime);
        SetLocalTime(systemtime);
      end;
    end;
    //取得系统时间
    function getserverdate;
    begin
      result := now;
      try
        dm.sever_date.ExecProc ;
        result := dm.sever_date.Parameters.ParamByName('@ddate').Value;
      except
        ;
      end;
    end;
    ========sever_date存储过程=================
    CREATE PROCEDURE sever_date
     @ddate smalldatetime out
     AS
     select  @ddate =getdate()