Ругаются —
The name 'HEPATITE CHOLESTATIQUE' is not permitted in this context. Only constants, expressions, or variables allowed here. Column names are not permitted.
Почему ?
Здравствуйте, PavelT100, Вы писали:
PT>Из VB6 с использованием ADO пишу - PT>Ругаются — PT>The name 'HEPATITE CHOLESTATIQUE' is not permitted in this context. Only constants, expressions, or variables allowed here. Column names are not permitted. PT>Почему ?
Попробую это дело посмотреть под сиквеловским профайлером.
и текст в сиквеле забивается в одинарные ковычки 'my text'
Если писать с одинарными кавычками, то все работает, но тогда будет работать и при SET QUOTED_IDENTIFIER ON.
А мне хочется работать с двойными кавычками, потому-что в других моих строках данных будет встречаться апостроф < ' >.
Здравствуйте, PavelT100, Вы писали:
PT>А мне хочется работать с двойными кавычками, потому-что в других моих строках данных будет встречаться апостроф < ' >.
можно же передавать значения через параметры или апостроф < ' > заменять на < '' >
Здравствуйте, PavelT100, Вы писали:
PT>Если писать с одинарными кавычками, то все работает, но тогда будет работать и при SET QUOTED_IDENTIFIER ON. PT>А мне хочется работать с двойными кавычками, потому-что в других моих строках данных будет встречаться апостроф < ' >.
Здравствуйте, Flamer, Вы писали: F>Вот и все... Так чего сложного то? Пишем одну функцию и юзаем ее везде, где нужно...
Спасибо, это я все понимаю, и до этого так и делал, но хочется проще, и вообще у меня вопрос был
почему SET QUOTED_IDENTIFIER OFF из бейсика не проходит ?
Здравствуйте, PavelT100, Вы писали:
PT>Здравствуйте, Flamer, Вы писали: F>>Вот и все... Так чего сложного то? Пишем одну функцию и юзаем ее везде, где нужно...
PT>Спасибо, это я все понимаю, и до этого так и делал, но хочется проще, и вообще у меня вопрос был PT>почему SET QUOTED_IDENTIFIER OFF из бейсика не проходит ?
Здравствуйте, PavelT100, Вы писали:
PT>Здравствуйте, Flamer, Вы писали: F>>Вот и все... Так чего сложного то? Пишем одну функцию и юзаем ее везде, где нужно...
PT>Спасибо, это я все понимаю, и до этого так и делал, но хочется проще, и вообще у меня вопрос был PT>почему SET QUOTED_IDENTIFIER OFF из бейсика не проходит ?
SET QUOTED_IDENTIFIER is set at parse time. Setting at parse time means that if the SET statement is present in the batch or stored procedure, it takes effect, regardless of whether code execution actually reaches that point; and the SET statement takes effect before any statements are executed.
— сколько программистов надо чтобы заменить сгоревшую лампочку?
— сколько не бери, а лампочку не поменять — проблема аппаратная, программным путем не решается...
А почему у тебя операторы в разных batch-пакетах? Просто объедини оба в одну строку (не забудь перевод строки) и выполни одним Execute...
PT>Из QA запускаю — PT>
PT>SET QUOTED_IDENTIFIER OFF
PT>INSERT INTO Z_INTXT(TxtID, Abstract, Type) values(6,"HEPATITE CHOLESTATIQUE","C5*")
PT>
PT>все работает.
PT>Из VB6 с использованием ADO пишу -
PT>
PT>Ругаются — PT>The name 'HEPATITE CHOLESTATIQUE' is not permitted in this context. Only constants, expressions, or variables allowed here. Column names are not permitted. PT>Почему ?
Здравствуйте, _MarlboroMan_, Вы писали:
_MM_>SET QUOTED_IDENTIFIER is set at parse time. Setting at parse time means that if the SET statement is present in the batch or stored procedure, it takes effect, regardless of whether code execution actually reaches that point; and the SET statement takes effect before any statements are executed.
это теория (RTFM читать умеем ), а вот работающия программа
— сколько программистов надо чтобы заменить сгоревшую лампочку?
— сколько не бери, а лампочку не поменять — проблема аппаратная, программным путем не решается...
дело в том, что твоя прога отработает корректно только в случае когда у SET QUOTED_IDENTIFIER [OFF] — дефолтное значение.
вопрос у человека был конкретный "почему?", а не "как?"
— сколько программистов надо чтобы заменить сгоревшую лампочку?
— сколько не бери, а лампочку не поменять — проблема аппаратная, программным путем не решается...
Здравствуйте, _MarlboroMan_, Вы писали: _MM_>это — шаманство.
шаманством здесь и не пахнет — SET QUOTED_IDENTIFIER выставляется для connection и остается в действии до след. SET (можешь проверить в QA)
_MM_>а правильно работающая программа выполнит SET в одном батче с нужным кодом.
правильно написанная — да, а у PavelT100 обычная ошибка: Column names are not permitted
т.е. слово HEPATITE CHOLESTATIQUE вообще без каких либо кавычек