Запрос с ROWID через провайдера данных - PullRequest
0 голосов
/ 26 декабря 2011

Я ищу запрос к таблице, подобной следующей 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 Ответ

1 голос
/ 27 декабря 2011

Спасибо, Марк, за указание на то, что поставщик данных .NET и Advantage Data Architect должны возвращать один и тот же результат.

Проблема заключается в разных строках подключения.В справочной документации говорится: первые шесть символов ROWID представляют идентификатор базы данных.Он основан на пути подключения .

Я ошибочно скопировал rowid из архитектора данных для тестирования с поставщиком данных, и строки подключения отличаются.Вот почему я не смог получить результат, возвращенный поставщиком данных, как это делает архитектор данных.

...