|
|
|
| Было вот так в MDB и все работало.
В ADP уже не работает, пишет, что не существует такой фукнции Cstr
& "WHERE [NumCode] In (SELECT CStr([Êîä çàïèñè]) FROM t5_Currency)"
Нашла, что Cstr заменяется на фукнцию CONVERT(varchar,Х). Заменила, но теперь пишет сообщение: недопустимое имя столбца "#10".
& "WHERE [NumCode] In (SELECT CONVERT(varchar,[Код записи]) FROM t5_Currency)"
Как сделать правильно? | |
|
| |
|
|
|
| при работе с SQL сервером лучше сразу отказаться от русских имен чего бы то ни было
можно вместо convert использовать CAST
http://msdn.microsoft.com/ru-ru/library/ms187928.aspx | |
|
| |
|
|
|
| Всю БД переделывать, чтобы отказаться от русских имен?
Я как-то читала, что русские имена если и будут мешать, то только в определенных случаях. Почитав про эти случаи, я решила, что с ними я вряд ли когда-то столкнусь, хотя зарекаться неблагодарное дело.
Но все же. Я пока не готова столько переделать рад смены русских имен, да и мне так удобнее. Но все равно спасибо за совет. | |
|
| |
|
|
|
| CAST([Код записи] As varchar(10)) тоже выдает ту же самую ошибку.
Что не так делаю?
Как правильно заменить Cstr([Код записи]), чтобы работало в ADP? | |
|
| |
|
|
|
| а если вместо [Код записи] написать какое-то поле которое по английски называется? Работает? | |
|
| |
|
|
|
| Нет. пробовала изменить поле КОД ЗАПИСИ на ID. То же самое. Пишет, что неверное поле ID | |
|
| |
|
|
|
| тренируемся в QA
declare @id int
set @id = 123456
select convert(nvarchar,@id)
select cast(@id as char(10))
|
и вот здесь:
WHERE [NumCode] In (SELECT CONVERT(varchar,[Код записи]) FROM t5_Currency)
|
может надо: CONVERT(varchar,[Код записи]) обозвать как-нибудь на вс. пожарный, типа AS NumCd
и это... русские буквы в наименовании полей да еще с пробелами! брррр-жжжуть. простите | |
|
| |
|
27 Кб. |
|
| Можно так:
CAST([Код записи]AS char(10)) AS RecCode
Ну и +1 к KrukVN - переделывайте лучше сразу названия с кирилицы на латиницу. Потом проблем вообще не оберетесь.
А про Cast и Convert почитайте эту статью | |
|
| |
|
|
|
| Спасибо за советы. Я читала эту статью. И вроде все правильно делаю, но все равно одна и та же ошибка: недопустимое название столбца.
А насчет русских названий столбцов, я здесь согласна. Просто это столько надо переделывать.ч то мне страшно становится.
Пока трудно решиться. Но судя по всему, придется денек выделить на это дело. | |
|
| |
|
|
|
| всего лишь 'денек' ???
так чего собственно ждем? | |
|
| |
|
|
|
| Денек - это мои оптимистичные прогнозы. Но по-моему, я так быстро не справлюсь.
40 таблиц, из них 32 основных (и 8 воспомогательных - списки самые необходимые, остальные списки сделаны через списки значений).
150 запросов (боже мой!) - хотя по идее запросы на основе таблиц должны сами исправить, да? ща попробую. Запросы на основе запросов точно сами не переделаются, как я понимаю.
Но самое главное - 304 формы. вот в них точно ведь придется обновить названия всех столбцов. и я не представляю, как это все делать.
поэтому я этого так и боюсь. в принципе, если без отдыха, то за денег справлюсь
А вот с CAST я так и не разобралась, к сожалению. Все равно пишет: "недопустимое название столбца".
Ну ведь я правильно сделала:
и поле даже переименовывала на англицкий. и Пробовала назвать и как NumCd.
Вот этот запрос (последний вариант). Всегда пишет: недопустимое имя столбца. В чем ошибка?
CurrentProject.Connection.Execute "INSERT INTO [Valutes] ( [IDv], [Course], Date) " _
& "select NumCode , Value , " & Format(dateMax, "\#mm\/dd\/yyyy\#") _
& " FROM Valute " _
& "WHERE [NumCode] In (SELECT CAST([IDvv]AS char(10)) AS RecCode FROM ValutesCourse)"
CurrentProject.Connection.Execute "drop table Valute" | |
|
| |
|
|
|
| Дело в Format(dateMax, "\#mm\/dd\/yyyy\#")
CurrentProject.Connection.Execute "INSERT INTO [Valutes] ( [IDv], [Course], Date ) " _
& "select NumCode , cast(replace(Value,',','.') as money) , cast('" & dateMax & "' as datetime) FROM Valute " _
& "WHERE [NumCode] In (SELECT cast([IDvv] as char(10)) FROM ValutesCourse)"
|
Называть столбец "Date" тоже не самое правильное решение | |
|
| |
|
|
|
| Спасибо | |
|
| |
|
|
|
| по поводу оптимистичности прогнозов по модернизации БД на SQL сервере
я бы сделал dump базы данных и в обычном редакторе worpad, например, обычным Ctrl-H (или Ctrl-R) переименовал бы названия полей.
затем запустил бы этот dump базы и создал бы уже обновленную структуру БД :)
где-то так :) | |
|
| |