В SQL я еще чайник.
1.Очень хочется использовать в кларион-программах прямые обращения к SQL типа
Send(File,'тело запроса')
File{Prop:SQL}='тело запроса'
Но это эффективно только в том случае, если в теле запроса можно использовать переменные из кларион-программы.Я конечно понимаю,что SQL-сервер понятия не имеет о каких-то там переменных из клиентской программы, но может быть все-таки можно.
2.В SQL довольно муторный формат для хранения даты и времени.Я вычитал на форуме, что бывают проблемы со сравнением дат.Как старый кларионист я знаю что в кларионе дата и время это просто переменные типа Long.Не мудрствуя лукаво в SQL я для полей даты и времени использовал переменную Int.И вроде все работает нормально.
Правильно ли это???(формат даты клариона доживет почти до конца 21 века, а там и нас грешнх уже не будет)
Ламерский вопрос про использование переменных в SQL
Модератор: Andrew™
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
-
- Ветеран
- Сообщения: 311
- Зарегистрирован: 08 Июль 2005, 22:04
- StillZero
- Ветеран
- Сообщения: 454
- Зарегистрирован: 06 Июль 2005, 2:17
- Откуда: Хабаровск
- Контактная информация:
не совсем понял в чем проблема, так например можно писать1.Очень хочется использовать в кларион-программах прямые обращения к SQL типа ...
Но это эффективно только в том случае, если в теле запроса можно использовать переменные из кларион-программы.
Код: Выделить всё
'SELECT MyField FROM MyTable WHERE MyCondition='&MyClarionVariable
я так понял речь о MS SQL...2.В SQL довольно муторный формат для хранения даты и времени.
нормальный формат и проблем никаких нет, а int-ом пользоваться по ламерски
поле дата в SQL - это тип datetime - датавремя
в кларе это поле описывается так:
Код: Выделить всё
DateTimeField STRING(8) ! 8-байт
DateTimeField_Group GROUP,OVER(DateTimeField)
DateTimeField_DATE DATE
DateTimeField_TIME TIME
END
при сравнении MS SQL учитывает поле времени, а так как оно равно нулю, то, если ранее писали так:
Код: Выделить всё
MyDate>=loc:DateBegin and MyDate<=loc:DateEnd
Код: Выделить всё
MyDate>=loc:DateBegin and MyDate<loc:DateEnd+1