:: Visual Foxpro, Foxpro for DOS
Дата в курсоре из mssql возвращается с типом текст, а не дата.
Vova_ukr_lg
Автор

Сообщений: 43
Дата регистрации: 10.10.2007
Здравствуйте.
Есть таблица в MSSQL
CREATE TABLE [dbo].[rest](
[id] [int] IDENTITY(1,1) NOT NULL,
[date] [date] NOT NULL,
[sku] [numeric](10, 0) NOT NULL,
[rest] [numeric](18, 3) NOT NULL
)

Делаю к ней запрос из VFP
hSQL = SQLSTRINGCONNECT('DRIVER='+gSQLDRIVER+';' + ;
'SERVER='+gSQLSERVER+';' + ;
'APP='+gSQLAPP+';' + ;
'UID='+gSQLUID+';' + ;
'PWD='+gSQLPWD+';' + ;
'DATABASE='+gSQLDATABASE+';' + ;
'LANGUAGE='+gSQLLANGUAGE)
lcCmd='SELECT max([date]) FROM [seller].[dbo].[rest]'
lnRes=SQLEXEC(hSql,lccmd,curSql)

Но дата возвращается с типом текст, а не дата. Формат колонки получается 'yyyy-mm-dd'. Запрос здесь упрощен и можно выкрутиться разбором значения, но в других запросах, где возвращается курсор, а не одна строка, не хочется заниматься лишними обработками. Как получить дату, а не строку? может тип данных на сервере поменять или настройки какие-то прописать?



Исправлено 1 раз(а). Последнее : Vova_ukr_lg, 06.07.18 19:48
Ratings: 0 negative/0 positive
Re: Дата в курсоре из mssql возвращается с типом текст, а не дата.
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Тип date это один из "новых" типов MSSQL (хотя "новый" понятие относительное - он уже версий 5 наверное как введён ) - для его корректной поддержки требуется новый же "клиент" - в частности для фокса ODBC драйвер - не антикварный "SQL Server" а один из "SQL Server Native Client xx.x".
Ну или же откатиться на тип поля datetime - он должен правильно (без преобразования в строку) проходить и через старый драйвер.


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Дата в курсоре из mssql возвращается с типом текст, а не дата.
Vova_ukr_lg
Автор

Сообщений: 43
Дата регистрации: 10.10.2007
Igor Korolyov
Тип date это один из "новых" типов MSSQL (хотя "новый" понятие относительное - он уже версий 5 наверное как введён ) - для его корректной поддержки требуется новый же "клиент" - в частности для фокса ODBC драйвер - не антикварный "SQL Server" а один из "SQL Server Native Client xx.x".
Ну или же откатиться на тип поля datetime - он должен правильно (без преобразования в строку) проходить и через старый драйвер.
изменение на datetime помогло, на клиента приходит не дата, но datetime это лучше, спасибо. а какой драйвер лучше использовать чтоб позже было меньше проблем?
Ratings: 0 negative/0 positive
Re: Дата в курсоре из mssql возвращается с типом текст, а не дата.
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Vova_ukr_lg
а какой драйвер лучше использовать чтоб позже было меньше проблем?
Igor Korolyov
в частности для фокса ODBC драйвер - не антикварный "SQL Server" а один из "SQL Server Native Client xx.x"


------------------
WBR, Igor
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 32 Alsim  (Гостей: 31)

© 2000-2024 Fox Club 
Яндекс.Метрика