Тремя способами, в зависимости от настроения левой ноги
1. Программа LoadQueueFromSQL принимает дату и в текстовое поле формата ГГГГ/ММ/ДД чч:мм:cc , а при разборке если строка соответствует шаблону, это дело расписывается не в одно, а в два - дата и время. В одном из проектов время было нафиг не нужно, даты хватило, тогда ещё проще.
2. В SQL написана аккуратная функция, которая переводит поле DateTime ( в MS SQL DateTime - число с плавающей точкой, одна единица равнаяется одним суткам, час равен 1/24 и т.д в строку клариона ('дата время'), а дальше уже я сам.
3. Можно просто использовать CAST или CONVERT, дабы передать дату и время как хочется....
Ну и повторный проход по очереди тоже юзал... Только была функция типа QueueDateTime( *Queue Q, *? DatetimeField, *? DateField, *? TimeField)
Тогда один вызов преобразует нужное поле во всей очереди сразу.
P.S. - тестовое приложение в понедельник выложу...
Ошибка ms sql "нарушение атрибута с ограничением на тип данных"
Модератор: Andrew™
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ошибка ms sql "нарушение атрибута с ограничением на тип данных"
Оживил, слегка причесал и выложил пример использования https://mega.nz/#!twZlWbCA!sPfsQM-cIist ... bDU8jEyoHA , адаптирован для MS SQL (проверено на MS SQL 2012 Express)
-
- ✯ Ветеран ✯
- Сообщения: 1704
- Зарегистрирован: 25 Март 2009, 21:55
- Благодарил (а): 9 раз
- Поблагодарили: 4 раза
Ошибка ms sql "нарушение атрибута с ограничением на тип данных"
Спасибо огромное!Yufil писал(а): ↑09 Октябрь 2017, 11:29 LoadQueueFromSQL.zip
Оживил, слегка причесал и выложил пример использования https://mega.nz/#!twZlWbCA!sPfsQM-cIist ... bDU8jEyoHA , адаптирован для MS SQL (проверено на MS SQL 2012 Express)
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
-
- ✯ Ветеран ✯
- Сообщения: 1704
- Зарегистрирован: 25 Март 2009, 21:55
- Благодарил (а): 9 раз
- Поблагодарили: 4 раза
Ошибка ms sql "нарушение атрибута с ограничением на тип данных"
Попробовал сегодня, спасибо - классная вещьYufil писал(а): ↑09 Октябрь 2017, 11:29Оживил, слегка причесал и выложил пример использования https://mega.nz/#!twZlWbCA!sPfsQM-cIist ... bDU8jEyoHA , адаптирован для MS SQL (проверено на MS SQL 2012 Express)
Только с ходу не нашел или не понял, как получить ошибку, если при правильном запросе нет результата
Код: Выделить всё
LoadQueueFromSQL('SELECT id, name FROM user WHERE id=5',,loc:id, loc:name)
IF Errorcode()
Message('Запись не найдена')
ELSE
! делаем с этой записью что то
END
IF loc:id <>0 AND LEN(CLIP(loc:name)) <> 0 THEN мое действие END
и очередь
IF RECORDS(Queue) THEN мое действие END
Привычка от TPS осталась
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Ошибка ms sql "нарушение атрибута с ограничением на тип данных"
Собственно, Null преображается в 0 для числа и пустую строку для символьного поля. В 99% случаев это правильное поведение, а кому надо - пусть явно укажет. Поэтому в запросе будет возвращено id=0, name='', никакой ошибки Errorcode/FileErrorCode не будет.