Ошибка ms sql "нарушение атрибута с ограничением на тип данных"

ODBC

Модератор: Andrew™

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
alex881
Посетитель
Сообщения: 42
Зарегистрирован: 08 Апрель 2015, 19:31
Откуда: Оренбург

Ошибка ms sql "нарушение атрибута с ограничением на тип данных"

Сообщение alex881 » 28 Июнь 2017, 13:48

в таблице поле brief описано как DSACC_SWIFT:char(35)
я так понимаю что это пользовательский тип данных, верно?
при запросе SELECT * FROM abcd.dbo.mytable where brief = '1234567890'
на последующий NEXT получаю ошибку "нарушение атрибута с ограничением на тип данных"
в мс студии, как обычно , такой запрос отрабатывает без проблем....
что не так в Clarione и как это побороть?

alex881
Посетитель
Сообщения: 42
Зарегистрирован: 08 Апрель 2015, 19:31
Откуда: Оренбург

Ошибка ms sql "нарушение атрибута с ограничением на тип данных"

Сообщение alex881 » 28 Июнь 2017, 14:34

не, все гораздо хуже - оно SELECT * FROM abcd.dbo.mytable не переваривает.....с той же ошибкой

Yufil
Ветеран движения
Сообщения: 916
Зарегистрирован: 16 Май 2006, 13:34
Контактная информация:

Ошибка ms sql "нарушение атрибута с ограничением на тип данных"

Сообщение Yufil » 28 Июнь 2017, 14:42

Select * - страшная штука, никогда не знаешь, в каком порядке поля пойдут... Можно посмотреть на описание БД в скуле и Кларионе ?
Next может иметь неподходящее поле для размещения данных или вообще никакого...

Ал
Ветеран
Сообщения: 666
Зарегистрирован: 08 Июль 2005, 5:48
Откуда: Зеленоград/Московская обл./Россия

Ошибка ms sql "нарушение атрибута с ограничением на тип данных"

Сообщение Ал » 28 Июнь 2017, 14:46

alex881 писал(а):
28 Июнь 2017, 14:34
не, все гораздо хуже
:facepalm: видимо "mytable" - не совсем .mytable :?:

alex881
Посетитель
Сообщения: 42
Зарегистрирован: 08 Апрель 2015, 19:31
Откуда: Оренбург

Ошибка ms sql "нарушение атрибута с ограничением на тип данных"

Сообщение alex881 » 28 Июнь 2017, 14:48

Yufil писал(а):
28 Июнь 2017, 14:42
Select * - страшная штука, никогда не знаешь, в каком порядке поля пойдут... Можно посмотреть на описание БД в скуле и Кларионе ?
Next может иметь неподходящее поле для размещения данных или вообще никакого...
видимо тут и есть проблема, заменил select * на перечень полей согласно словарику и оно заработало.
Всем спасибо.

Yufil
Ветеран движения
Сообщения: 916
Зарегистрирован: 16 Май 2006, 13:34
Контактная информация:

Ошибка ms sql "нарушение атрибута с ограничением на тип данных"

Сообщение Yufil » 28 Июнь 2017, 14:49

Типичная картинка - в таблицу добавили поле, а в кларионовский файл забыли. Или порядок полей поменяли. После чего Select * работает криво. Кстати, включить трассировку драйвера и посмотреть тоже весьма не худо...

alex881
Посетитель
Сообщения: 42
Зарегистрирован: 08 Апрель 2015, 19:31
Откуда: Оренбург

Ошибка ms sql "нарушение атрибута с ограничением на тип данных"

Сообщение alex881 » 28 Июнь 2017, 15:06

вот тут как раз такой случай - 2 таблицы в разных базах имеют , к сожалению, разный набор полей
соответственно при переключении на с "правильной базы" на "неправильную" процедурка отьехала ;-)
в общем берем за правило для чужих таблиц select * не юзать ;-)
хотя заманчиво, что говорить....

kreator
Ветеран
Сообщения: 2544
Зарегистрирован: 28 Май 2009, 14:54
Откуда: Москва

Ошибка ms sql "нарушение атрибута с ограничением на тип данных"

Сообщение kreator » 28 Июнь 2017, 16:26

alex881 писал(а):
28 Июнь 2017, 15:06
вот тут как раз такой случай - 2 таблицы в разных базах имеют , к сожалению, разный набор полей
соответственно при переключении на с "правильной базы" на "неправильную" процедурка отьехала
в общем берем за правило для чужих таблиц select * не юзать
хотя заманчиво, что говорить....
Есть правильный принцип - не писать запросов типа "select *". Вообще не писать. Ни для каких баз, ни своих, ни чужих. Забыть про эту звёздочку совсем. Просто, что называется, зарубить себе на носу. Ссылку на получение запроса через prop:SQL в Кларионе я давал.
С уважением, Kreator.

Yufil
Ветеран движения
Сообщения: 916
Зарегистрирован: 16 Май 2006, 13:34
Контактная информация:

Ошибка ms sql "нарушение атрибута с ограничением на тип данных"

Сообщение Yufil » 28 Июнь 2017, 16:34

Может быть, кто-то оживит LoadQueueFromSQL, для меня сейчас совсем не актуально (кларионовские программы только на tps), выложил архив с несколькими используемыми вариантами
на https://mega.nz/#!JwJzzbjA!Qo4MEMKuw3_2 ... 9MMLDBQiFs, писал про эту функцию неоднократно

Shur
Ветеран
Сообщения: 381
Зарегистрирован: 02 Июль 2011, 17:49

Ошибка ms sql "нарушение атрибута с ограничением на тип данных"

Сообщение Shur » 28 Июнь 2017, 22:29

kreator писал(а):
28 Июнь 2017, 16:26
Есть правильный принцип - не писать запросов типа "select *". Вообще не писать. Ни для каких баз, ни своих, ни чужих. Забыть про эту звёздочку совсем. Просто, что называется, зарубить себе на носу.
Есть ещё такая привычка свои косяки вымещать на якобы неправильном синтаксисе языка.
А я так скажу: нравится в Кларионе писать после IF лексему THEN -- пиши, нравится вместо точки писать END -- пиши, нравится в Си в IF после () всегда писать {} ELSE {} -- пожалуйста, только не косячь, а накосячил -- не жалуйся.
Прости, Kreator, это не личный выпад. Просто сталкивался уже с апологетами такого рода: приходили такие, говорили, а давайте, мля, избавимся от всех звёздочек. Через месяц, мля, доложить, насколько стало лучше.

kreator
Ветеран
Сообщения: 2544
Зарегистрирован: 28 Май 2009, 14:54
Откуда: Москва

Ошибка ms sql "нарушение атрибута с ограничением на тип данных"

Сообщение kreator » 29 Июнь 2017, 0:29

Shur писал(а):
28 Июнь 2017, 22:29
Есть ещё такая привычка свои косяки вымещать на якобы неправильном синтаксисе языка.
А я так скажу: нравится в Кларионе писать после IF лексему THEN -- пиши, нравится вместо точки писать END -- пиши, нравится в Си в IF после () всегда писать {} ELSE {} -- пожалуйста, только не косячь, а накосячил -- не жалуйся.
Прости, Kreator, это не личный выпад. Просто сталкивался уже с апологетами такого рода: приходили такие, говорили, а давайте, мля, избавимся от всех звёздочек. Через месяц, мля, доложить, насколько стало лучше.
Не понял. Вы считаете, что при запросе "select * from table" Кларион должен совершить чудо? Узнать структуру "table" и правильно (в правильном порядке) подложить к нему свои переменные?
А ещё интересно посмотреть на Вашу (или Клариона) реакцию на такой запрос к таблице, в которой есть ох...ные blob'ы.
С уважением, Kreator.

Ал
Ветеран
Сообщения: 666
Зарегистрирован: 08 Июль 2005, 5:48
Откуда: Зеленоград/Московская обл./Россия

Ошибка ms sql "нарушение атрибута с ограничением на тип данных"

Сообщение Ал » 29 Июнь 2017, 11:31

давайте-давайте, бойцы, мало вам, мля, ПТ на SQL.ru? :lol:
boxing-on-ring.jpg
boxing-on-ring.jpg (28.5 КБ) 928 просмотров
зы - Вольно, разойтись, оправиться, .....ля
зыы или "разойдись"???, забыл, ...ля :idied:

gopstop2007
Ветеран
Сообщения: 916
Зарегистрирован: 25 Март 2009, 21:55

Ошибка ms sql "нарушение атрибута с ограничением на тип данных"

Сообщение gopstop2007 » 06 Октябрь 2017, 11:43

Yufil писал(а):
28 Июнь 2017, 16:34
Может быть, кто-то оживит LoadQueueFromSQL, для меня сейчас совсем не актуально (кларионовские программы только на tps), выложил архив с несколькими используемыми вариантами
на https://mega.nz/#!JwJzzbjA!Qo4MEMKuw3_2 ... 9MMLDBQiFs, писал про эту функцию неоднократно
Подыму тему, может пока помните и Вас не затруднит, сделаете простенький пример (app+dct) использования LoadQueueFromSQL, и бросим в FAQ?
А то в выше указанном файле, мне тупому не совсем понятно, что лишнее. :D
Буду признателен. Спасибо заранее.
С уважением РА

Yufil
Ветеран движения
Сообщения: 916
Зарегистрирован: 16 Май 2006, 13:34
Контактная информация:

Ошибка ms sql "нарушение атрибута с ограничением на тип данных"

Сообщение Yufil » 06 Октябрь 2017, 12:33

Хмм... . Сейчас у меня вообще нет ни одного приложения на SQL - сервере (впрочем, есть мертворождённый проект на MySQL-Python-Django), даже на Кларионе практически нет новых приложений, только сопровождаю старые. И, соответственно, последние годы больше пишу на Python и Javascript, чем на Clarion

Попробую что-нибудь сделать...

kreator
Ветеран
Сообщения: 2544
Зарегистрирован: 28 Май 2009, 14:54
Откуда: Москва

Ошибка ms sql "нарушение атрибута с ограничением на тип данных"

Сообщение kreator » 06 Октябрь 2017, 14:26

Раз уж подняли тему. Я ещё тогда думал-думал по поводу LoadQueueFromSQL. Есть у меня сомнения. Вот какие. Есть вещи, тяжело реализуемые языком SQL, есть вообще не реализуемые. Легче сделать средствами Клариона. Я, например, форматирование даты делаю в цикле по файлу/вьюхе. Может Юрий покажет как у него обходится этот момент. Делать ещё цикл по очереди и переписывать в другое поле или в другую очередь?
С уважением, Kreator.

Ответить