Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / ADP не знаю как ошибку назвать .... / 14 сообщений из 14, страница 1 из 1
14.10.2003, 14:32
    #32292723
Артист
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADP не знаю как ошибку назвать ....
законектился к сиквелу, куда не щёлкну (таблы, вьюхи, ...) пишет "cannot resolve collation for column 2 in SELECT statement" что за хрень? у нас к этой базе клиенты на всём чем тока можно написаны - и везде без проблем ...
взял бэкап той базы и на msde у себя заресторил - делаю adp - всё ОК!
в чём же дело на серваке?
...
Рейтинг: 0 / 0
14.10.2003, 14:40
    #32292742
incold
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADP не знаю как ошибку назвать ....
В ошибке все сказано.
Бывает если бекап с 7-го сервера восстанавливают на 2000-й
или даже совместимые, но при установке указан другой collation
см. соотв. свойство сервера/базы/таблцы/поля в EnterpriseMan
...
Рейтинг: 0 / 0
15.10.2003, 08:28
    #32293565
Артист
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADP не знаю как ошибку назвать ....
как бороться? collation сменить не помогло ...
и почему всем окромя adp на это плевать?
...
Рейтинг: 0 / 0
15.10.2003, 09:14
    #32293589
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADP не знаю как ошибку назвать ....
>collation сменить не помогло ...

Разный был? Сменил на одинаковый - и все-равно колбасит? Наверное все-таки что-то забыл:

Из БОЛ (mk:@MSITStore:C:\Program%20Files\Microsoft%20SQL%20Server\80\Tools\Books\tsqlref.chm::/ts_da-db_7ory.htm)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
The predicate in the following query is evaluated in collation greek_ci_as because 
the right expression has the explicit label, which takes precedence over the implicit 
label of the right expression:

SELECT * 
FROM TestTab 
WHERE GreekCol = LatinCol COLLATE greek_ci_as

This is the result set.

id          GreekCol             LatinCol
  ----------- -------------------- --------------------
 
            1  a                    A

( 1  row affected)

The case expressions in the following queries have no collation label so they 
cannot appear in the select list or be operated by collation-sensitive operators. 
However, the expressions can be operated on by collation-insensitive operators.

SELECT (CASE WHEN id >  10  THEN GreekCol ELSE LatinCol END) 
FROM TestTab

Here is the result set.

Msg  451 , Level  16 , State  1 , Line  1 
Cannot resolve collation conflict for column  1  in SELECT statement.


Правила работы Collation Precedence приведены по указанной ссылке на БОЛ. Посмотри - может что поможет
...
Рейтинг: 0 / 0
15.10.2003, 10:12
    #32293663
Артист
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADP не знаю как ошибку назвать ....
Разный был?
угу
Сменил на одинаковый - и все-равно колбасит?
всё равно ...
Наверное все-таки что-то забыл:
BOL читал... спасибо ... что забыл - не знаю... квалификации нехватает наверно :)

вечером чёнить попробую ... а то база боевая :)
вот ещё беда - если дело в изменении collation , то надо какуто коллейтию искать подобную, а то php-сты - дельфинисты ахнули как у них всё из-за регистра упало :)
...
Рейтинг: 0 / 0
15.10.2003, 11:01
    #32293738
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADP не знаю как ошибку назвать ....
Наверное проблема в колейшене в системных таблицах а именно в которых описывается макет таблиц и вьюх (размеры, порядок столбцов для отображения на экране)

смена колейшена по умолчанию для сервера не поможет
нужно менять колейшен для поля этой системной таблицы
...
Рейтинг: 0 / 0
15.10.2003, 11:07
    #32293751
Артист
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADP не знаю как ошибку назвать ....
Алексей, я умолчания не менял, я и делал на базу alter collation и не помогло ....
...
Рейтинг: 0 / 0
15.10.2003, 11:46
    #32293821
incold
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADP не знаю как ошибку назвать ....
Я же говорил это свойство есть у сервера/базы/таблицы/поля
если во вьюшке связь по полям с разным collation тогда будет такая ошибка.

Могу предложить 100% рабочий вариант, но уж очень трудоемкий:
1. Создается новая база с collation, который по умолчанию на сервере
2. Скриптами создаются все серверные объекты. (скрипты на таблицы )
3. Любым способом (я делал через мастер импорта/экспорта) перекачиваются данные.
...
Рейтинг: 0 / 0
15.10.2003, 11:47
    #32293824
incold
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADP не знаю как ошибку назвать ....
Отвлекся там где написано (скрипты на таблицы ) нужно было
(скрипты на таблицы без collation)
...
Рейтинг: 0 / 0
15.10.2003, 12:07
    #32293862
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADP не знаю как ошибку назвать ....
А если через Alter Table COLLATE изменить у столбцов ?
Можно достаточно быстро создать скрипт на созданиенужных объектов, изменить Create на Alter, остаивть только столбцы с COLLATE что-то не правильное, заменить что-тоне правильно на (допустим) Cyrillic_General_CI_AS ?

Заодно можно и разобраться в чем дело (где COLLATE плывет)

Таким образом можно избежать совета Incold'a про копирование инфы.

Сам COLLATE на сервере лучше не менять - вроде на форуме sql не рекомендуют - лучше установить заново с нужным COLLATE. Хотя попробовать не возброняется
...
Рейтинг: 0 / 0
15.10.2003, 14:55
    #32294183
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADP не знаю как ошибку назвать ....
>Алексей, я умолчания не менял, я и делал на базу alter collation и не помогло ....

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

причем скорее всего твоя проблема не с рабочими таблицами а с одной системной см. мой пост выше. так как у тебя одна и та же ошибка для всех таблиц и вьюх "cannot resolve collation for column 2"

в числе системных таблицах есть отвечающая за макет отображения вьюх и таблиц открытых в режиме просмотра так скорее всего при открытии любого объекта при попытке получения этих данных и эта беда вылезает

тебе нужно поменять колейшен только для этой таблицы.
...
Рейтинг: 0 / 0
15.10.2003, 15:13
    #32294216
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADP не знаю как ошибку назвать ....
Вот что происходит на сервере если я открываю таблицу project_planing из Аксесс 2002 в режиме просмотра таблицы

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
select cols.COLUMN_NAME, case  when cols.DOMAIN_NAME is not null then cols.DOMAIN_NAME COLLATE Latin1_General_BIN else cols.DATA_TYPE end as datatype, cols.DATA_TYPE as basetype, cols.CHARACTER_MAXIMUM_LENGTH, cols.NUMERIC_PRECISION, cols.NUMERIC_SCALE from  INFORMATION_SCHEMA.COLUMNS cols where cols.TABLE_CATALOG = N'webaccess' and cols.TABLE_SCHEMA = N'dbo' and cols.TABLE_NAME = N'prj_planing' order by cols.ORDINAL_POSITION 
go
 SELECT *, sql_variant_property(value, 'basetype') AS type FROM ::fn_listextendedproperty(NULL,N'user',N'dbo',N'table',N'prj_planing',NULL,NULL) 
go
 SELECT *, sql_variant_property(value, 'basetype') AS type FROM ::fn_listextendedproperty(NULL,N'user',N'dbo',N'table',N'prj_planing',N'column',NULL) ORDER BY PATINDEX(N'MS_DisplayControl', name) DESC 
go
SET ROWCOUNT  10000  
go
 SELECT * FROM  "dbo" . "prj_planing"  
go
select object_name(sofk.id), user_name(sofk.uid), 'FK' from sysreferences srfk, sysobjects sofk, sysobjects sotblfk where srfk.constid = sofk.id and srfk.fkeyid = sotblfk.id and user_name(sotblfk.uid) = N'dbo' and object_name(sotblfk.id) = N'prj_planing_time'union select object_name(sofk.id), user_name(sofk.uid), 'RK' from sysreferences srfk, sysobjects sofk, sysobjects sotblrk where srfk.constid = sofk.id and srfk.rkeyid = sotblrk.id and user_name(sotblrk.uid) = N'dbo' and object_name(sotblrk.id) = N'prj_planing_time' 
go
select object_name(sofk.id), user_name(sofk.uid), 'FK' from sysreferences srfk, sysobjects sofk, sysobjects sotblfk where srfk.constid = sofk.id and srfk.fkeyid = sotblfk.id and user_name(sotblfk.uid) = N'dbo' and object_name(sotblfk.id) = N'prj_planing'union select object_name(sofk.id), user_name(sofk.uid), 'RK' from sysreferences srfk, sysobjects sofk, sysobjects sotblrk where srfk.constid = sofk.id and srfk.rkeyid = sotblrk.id and user_name(sotblrk.uid) = N'dbo' and object_name(sotblrk.id) = N'prj_planing' 
go


так вот для того чтобы определить в чем собака зарыта - запускаешь профилер
и смотришь на каком этапе у тебя рубится процесс
...
Рейтинг: 0 / 0
15.10.2003, 16:23
    #32294340
Артист
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADP не знаю как ошибку назвать ....
спасибо буду пробовать, потом доложу :)
тока не скоро ...
...
Рейтинг: 0 / 0
16.10.2003, 17:27
    #32295734
Latuk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ADP не знаю как ошибку назвать ....
Была у меня такая хрень.
Поставил новый сервак , колейшн на нем английский получился а у базы руский.

Причем таблицы пилинкованные из MDB-ка все нормально(используют колейшн базы), а у ADP траблы.
Так вот выяснилось ,
что collation базы (Посмотри в EM база->свойства) и collation сервера(Посмотри в EM Сервер->свойства) для ADP должны быть одинаковыми.
Гдето он использует один гдето другой , и если они не совпадают то ругается.
Причем не работает чтото одно толи ХП толи вьюхи сейчас не помню.
Стандартно для русского Cyrilic_General_Cl_AS
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / ADP не знаю как ошибку назвать .... / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]