2011-12-26 91 views
0

查询与ROWID我期待查询表像下面的SQL:通过数据提供商

select * from itd093 where rowid='Cumn99AAAAMzAAAAAJ'

它可以发现在ADS建筑师客户端的唯一记录。但是,当通过.NET数据提供程序从代码级别发送此查询时,它将不返回数据库服务器的结果。

有没有人有关于如何让上面的SQL通过.NET数据提供程序返回结果的想法?

一些示例代码在这里:

 public void DataProviderTest() 
     { 
      using (AdsConnection conn = new AdsConnection(@"Data Source=D:\Development\FDDB;ServerType=ADS_LOCAL_SERVER;TableType=ADS_CDX;TrimTrailingSpaces=TRUE;")) 
      { 
       conn.Open(); 
       AdsCommand cmd = new AdsCommand("select * from itd093 where rowid='Cumn99AAAAMzAAAAAJ'", conn); 

       AdsDataReader reader = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection); 
       if (!reader.Read()) 
        throw new Exception("no records"); 
      } 
     } 
+1

无论您是通过Advantage Data Architect还是通过.NET数据提供者提交此查询,服务器上的执行都是相同的。如果您可以显示您正在使用的简单重新创建(某些代码),则可能有助于确定发生了什么。 – 2011-12-26 19:45:09

+0

感谢马克的回复。我在上面添加了一些代码,它应该返回结果,但是id没有。 – Katat 2011-12-27 01:59:48

回答

1

感谢马克您指出的是,.NET数据提供程序和数据优势建筑师应该返回相同的结果。

问题是不同的连接字符串。从帮助文档中,它说,ROWID的前六个字符表示数据库ID。它基于连接路径

我错误地将数据架构师的rowid复制到数据提供者测试,并且连接字符串是不同的。这就是为什么我无法像数据架构师那样从数据提供者返回结果的原因。