2010-04-21 3 views
2

Я использую MS Access в качестве интерфейса для моего MS SQL-сервера.Запрос SQL и запрос MS Access возвращают разные данные

Когда я использую SQL-запрос в мс Доступ, который (на мой взгляд) эквивалентен запросу, запускаемому с SQL-сервера, Access возвращает разные данные. На рисунках ниже показана разница. Я использую Access 2003, и я подключил таблицу Access к SQL-серверу (2008) через ODBC.

У кого-нибудь есть идея, как это исправить?

Заранее спасибо

/Iljitj

SQL, и доступ запросов и результат:

(Это столбец "Projekt", который отличается)

http://i.imagehost.org/0218/SQL_access_query_and_result.jpg

+1

Вы должны указывать на две разные таблицы. Access/SQL Server не повлияет на то, что вы наблюдаете. –

+0

Ну, это единственная таблица на сервере, содержащая эти столбцы и информация, так что это не проблема. – iljitj

+0

И таблица определенно является связанной таблицей, а не импортированной?Потому что я не вижу никакой причины, по которой Access будет давать вам разные результаты в этом случае. –

ответ

1

I просто прекратит использование Access. Кажется, он очень сломан. Прежде всего, давайте выясним, какой доступ к выбору выписок действительно используется.

В SSMS (SQL Server Management Studio) go Tool -> Профилировщик SQL Server.

Прикрепите к той же базе данных, затем посмотрите, что делает доступ. Файл -> Создать -> connect -> run.

+1

+1 за отказ от доступа ..... –

+0

Прежде всего: я сделал след, но я не уверен, что с ним делать. Ссылка - это ss от того, что Access сделал: http://j.imagehost.org/0808/trace.jpg Во-вторых: Я согласен, что доступ я дерьмо, но я не очень программист, я знаю некоторые VBA и немного C#. Есть ли другое приложение или что-то вроде Access, которое я могу использовать в качестве интерфейса для моего SQL-сервера вместо Access? – iljitj

+0

Является ли CVRNr основным ключом на столе? Можете ли вы опубликовать схему таблицы? – SqlACID

1

Хорошо, я вижу пару вещей ...

  1. У вас есть первичный ключ установки для таблицы на MS SQL? Это может запутать MS Access.
  2. Булевский столбец имеет разные значения, но я думаю, это потому, что MS Access любит представлять их иначе, чем MS SQL. То, с чем вам придется жить.
+0

Результаты в столбце Projekt не совпадают, и я думаю, что это настоящая проблема, а не стандартное булево преобразование. –

2

Recreate Access related table. Иногда доступ к внутренним определениям становится плохим, особенно когда есть некоторые изменения в структурах связанных серверов, таблицы/столбцы воссозданы/изменены или схожи.

BTW, сам доступ, конечно же, неплохой, просто он предназначен для простого рабочего стола «databasing». У этого есть много ограничений и некоторые причуды, но это вполне применимо.

+0

«Внутренние определения» не делают «плохой», это просто, что метаданные, хранящиеся в ссылках в таблице, могут устаревать, если целевая таблица/представление изменено. Стандарт bog-стандарта удаляет и воссоздает все ссылки на таблицы/представления, если на сервере они изменены. –

+0

«Доступ» предназначен для простого «денатурирования» рабочего стола. Это правда, что Access поддерживает это, но он полностью расширяется, чтобы покрыть большую часть всех типов приложений баз данных. В этом вопросе нет ничего предполагает, что в плакате есть что-то, что делает доступ непригодным как передний конец. –

+0

Слушайте, я не англоязычный, я не могу создавать такие выражения, как «метаданные, хранящиеся в ссылках таблицы, могут устаревать, если целевая таблица/представление изменено «на лету». «Плохо», конечно, означает то же самое, просто выраженное гораздо короче (и, видимо, но, к сожалению, неправильное);) – Arvo

3

Хорошо, я решил проблему. При этом Access не будет делать ничего без уникального идентификатора. Поскольку у меня не было этого в моей таблице, Access использовал CVRnr как идентификатор, но поскольку он не уникален, Access только вытащил первую строку и распечатал ее, а значит, и «неверные» данные.

Я добавил уникальный идентификатор и правильно связал его с Access, и теперь он работает.

Большое спасибо за вашу помощь и предложения, я не думаю, что когда-либо выяснил, что причиной был идентификатор, если некоторые из вас этого не предложили.

Вы сохранили меня;)

Смежные вопросы