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

发布于 2024-12-22 21:29:18 字数 858 浏览 1 评论 0原文

我希望查询类似以下 sql 的表:

select * from itd093 where rowid='Cumn99AAAAMzAAAAAAJ'

它可以在 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");
            }
        }

I am looking to query a table like the following sql:

select * from itd093 where rowid='Cumn99AAAAMzAAAAAJ'

It could find a unique record in the ADS architect client. However, when this query was sent from the code level through the .NET data provider, it return none result from the database server.

Does anyone have ideas on how I can make the sql above return the result through the .NET data provider?

Some sample code here:

        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");
            }
        }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

葬花如无物 2024-12-29 21:29:18

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

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

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

Thanks Mark for pointing out that the .NET data provider and the Advantage Data Architect should return the same result.

The problem to be the different connection strings. From the help documentation, it says,the first six characters of the ROWID represent the database ID. It is based on the connection path.

I was mistakenly copy a rowid from the data architect to test with data provider, and the connection strings are different. That's why I couldn't get a result returned from the data provider as it does from the data architect.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文