Query1.SQL.Clear();
Query1.SQL.Add('Select Host_Name() as Name');
Query1.Open();
edit1.text=Query1.Fieldbyname('name').asstring;

解决方案 »

  1.   

    用过程使一下:
    首先要在SQL-SERVER中建立一个过程返回Host_Name()函数的值
    然后在DELPHI中建立TStoredProc激活即可返回!因为这不是SQL语句的部分,所以不可以用SQL语句!
      

  2.   

    用过程试一下:
    首先要在SQL-SERVER中建立一个过程返回Host_Name()函数的值
    然后在DELPHI中建立TStoredProc激活即可返回!因为这不是SQL语句的部分,所以不可以用SQL语句!
      

  3.   

    基本同意 Wingsun。但可能是因为 Delphi 的 BDE 中内置的SQL 处理器不支持 host_name() 函数,所以执行结果 Edit1 为空字符串(具体原因我还不大清楚,有待大虾指点)。改为 getdate() 则OK:Query1.SQL.Clear();
    Query1.SQL.Add('Select GetDate() as Name');
    Query1.Open();
    edit1.text=Query1.Fieldbyname('name').asstring; 值得注意的是,必须有后台数据库(本人的为 MS SQL Sever)支持:  object Query1: TQuery
        DatabaseName = 'local'Query1 连接的数据库(“local”)的类型为 MSSQL,如果  object Query1: TQuery
        DatabaseName = 'DBDemos'将出错。(调试环境:Delphi 5.0 + SQLSever 7.0)存储过程我也试过,也是返回空字符串。
      

  4.   

    用NT环境下的SQL Server试一试。
    Select Host_Name() as Name应该可以,可能是本地版的原因。 
      

  5.   

    试验一下,把sql server的bde配置该成
    sqlpassthrough,bde就不检查sql语法,然后host_name()就可以过去了