Страница 1 из 2

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

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

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

Добавлено: 28 Июнь 2017, 14:34
alex881
не, все гораздо хуже - оно SELECT * FROM abcd.dbo.mytable не переваривает.....с той же ошибкой

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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