[Clarion MS SQL] Выборка данных типа DATETIME

ODBC

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

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Гость

Сообщение Гость »

Научился я вроде данные выбирать из баз, только вот с типом DATETIME не совсем понятно.
Когда словарь импортирует таблицы, содержащие поля DATETIME, то получается структура примерно такого вида:

Код: Выделить всё

StartDT                 STRING(8)
StartDT_GROUP           GROUP
StartDT_DATE                DATE
StartDT_TIME                TIME
                        END
- это все - из одного поля StartDT типа DATETIME

=====================================================================
для работы есть у нас функция:

Код: Выделить всё

CREATE FUNCTION dbo.UserPasswords (@IDObj INT, @Today DATETIME )  
RETURNS TABLE
RETURN  (
                SELECT Vals.Val, Vals.StartDT
                FROM Vals, Properties
                WHERE 
                Vals.IDObj = @IDObj
                AND Vals.IDProp = Properties.IDProp
                AND Properties.Name = 'Pass'
)
=====================================================================

Значит для работы мы используем вот такой вот файл

Код: Выделить всё

MySQLFile       FILE, DRIVER('MSSQL'), CREATE
Record              RECORD
Res                     CSTRING(31)
StartDT                 STRING(8)
StartDT_GROUP           GROUP
StartDT_DATE                DATE
StartDT_TIME                TIME
                        END
                    END
                END
=====================================================================

Код: Выделить всё

REMOVE(MySQLFile)
CheckOpen(MySQLFile)
==== и вот на этом месте появляется "Ошибка создания файла"
==== Invalid Field Type Descriptor (75) при создании MYSQLFIL
==== нажмите ОК для завершения работы программы....

Код: Выделить всё

MESSAGE('CheckOpen(MySQLStr) --> Done')
MySQLFile{PROP:SQL} = !
    'SELECT Val, StartDT FROM dbo.UserPasswords (1, ''' & '01.01.1900' & ''')'
LOOP
    NEXT(MySQLFile)
    IF ERRORCODE()
        BREAK.
    MESSAGE(MySQLFile.Res)

END
=====================================================================

Помогите разобраться:
1. откуда берется эта ошибка?
2. как правильно работать с полями типа DATETIME?

СПАСИБО!

--
Best regards,
Иван mailto:shkmail@inbox.ru


(Добавление)
- это все - из одного поля StartDT типа DATETIME
Хелп по разделу ODBC/SQL в клаше очень короткий и предаврительно нужно было хотя бы прочитать целиком.
А по теме - при импорте должна получаеться немного другая структура:

Код: Выделить всё

 StartDT                 STRING(8)
 StartDT_GROUP           GROUP,OVER(StartDT) < контрольный момент
 StartDT_DATE                DATE
 StartDT_TIME                TIME
                         END

Код: Выделить всё

MySQLFile       FILE, DRIVER('MSSQL'), CREATE
 Record              RECORD
 Res                     CSTRING(31)
 StartDT                 STRING(8)
 StartDT_GROUP           GROUP
аналогично:

Код: Выделить всё

 StartDT_GROUP           GROUP,OVER(StartDT)

Код: Выделить всё

StartDT_DATE                DATE
 StartDT_TIME                TIME
                         END
                     END
                 END
==== и вот на этом месте появляется "Ошибка создания файла"
==== Invalid Field Type Descriptor (75) при создании MYSQLFIL
==== нажмите ОК для завершения работы программы....
ессесно - группа для сиквела загадочная структура
2. как правильно работать с полями типа DATETIME?
А что конкретно непонятно с данной структурой?

--
Best regards,
Vadym mailto:vadim@softcreator.com
ICQ: 82308757

(Добавление)

Ну теперь все понятно! Спасибо!

--
Best regards,
Иван
Написал: ClaList(2)
Ответить