我在本机装了SQL Server 2000 然后配置了ODBC数据源localserver指向示例数据库NorthWind。接着在delphi窗体上放一个Table1,把DatabaseName属性设为localserver,把TableName属性设为Customers,再放一个DataSource1和DBGrid1指向Table1。但奇怪的是,把Table1的active属性设为true的时候,DBGrid1显示不出东西来。但把TableName设为其他表名则是可以的。我分析了一下,好像是因为Customers表的字段类型是nchar和nvarchar的缘故,但如何解决仍不知道

解决方案 »

  1.   

    應該沒有關系的!
    檢查表是里有沒有數據!要不, 用ADO聯接上去看看
      

  2.   

    用ADO是可以的,但bde不行。
    另外,我还有一个问题,怎么样不用odbc驱动、而用sql link驱动来访问SQL Server数据库?这种情况下怎么配置数据库别名?
      

  3.   


    不用ODBC的方法有两种
    1.用BDE Administrator 建一个MS SQL类型的别名,设置它的服务器名,数据库名,用户名2.用ADO直接连接
      

  4.   

    TDataBase 控件,设置 DriverName 为 MSSQL,然后配置 Params,设置好 Server Name、User和Password,然后 Connect 试一下。
      

  5.   

    如Cipherliu(孤鹰) : CloneCenter(复制中心) 所說﹒就能解決問題!
      

  6.   

    谢谢,我已经解决了。sql server的字段类型nchar、nvarchar在BDE中不认识,只要改成char、varchar就可以了,ado没有这个限制,看哪位还有什么见解?
      

  7.   

    to sousouwjh(sousouwjh) 
    --------
    基本上是这样,但nchar、nvarchar这两个字段类型不改的话,还是不行,我分析了一下,这应该是BDE和SQL link的缺陷
      

  8.   

    我也碰到过这个问题,我建议你用ADO。如果你一定要用BDE的话,不要通过ODBC,在BDE直接建立别名,DriverName 应为 MSSQL.
    但Table还是不行,用QUERY就可以了。