通过数据提供程序使用ROWID进行查询

时间:2011-12-26 09:20:46

标签: advantage-database-server

我希望查询类似以下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 个答案:

答案 0 :(得分:1)

感谢Mark指出.NET数据提供程序和Advantage Data Architect应该返回相同的结果。

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

我错误地从数据架构师复制rowid以使用数据提供程序进行测试,并且连接字符串不同。这就是为什么我无法从数据提供者那里获得从数据提供者返回的结果。