powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Дата в курсоре из mssql возвращается с типом текст, а не дата.
7 сообщений из 7, страница 1 из 1
Дата в курсоре из mssql возвращается с типом текст, а не дата.
    #39670872
vova_ukr_lg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.
Есть таблица в MSSQL
Код: sql
1.
2.
3.
4.
5.
6.
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

Код: sql
1.
2.
 lcCmd='SELECT max([date]) FROM [seller].[dbo].[rest]'  
  lnRes=SQLEXEC(hSql,lccmd,curSql)



Но дата возвращается с типом текст, а не дата. Формат колонки получается 'yyyy-mm-dd'. Запрос здесь упрощен и можно выкрутиться разбором значения, но в других запросах, где возвращается курсор, а не одна строка, не хочется заниматься лишними обработками конвертациями. Как получить дату, а не строку? может тип данных на сервере поменять или настройки какие-то прописать?
...
Рейтинг: 0 / 0
Дата в курсоре из mssql возвращается с типом текст, а не дата.
    #39670874
vova_ukr_lg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vova_ukr_lg,
подключение создаю так
Код: sql
1.
2.
3.
4.
5.
6.
7.
hSQL = SQLSTRINGCONNECT('DRIVER='+gSQLDRIVER+';' + ;
							'SERVER='+gSQLSERVER+';' + ;
							'APP='+gSQLAPP+';' + ;
							'UID='+gSQLUID+';' + ;
							'PWD='+gSQLPWD+';' + ;
							'DATABASE='+gSQLDATABASE+';' + ;
							'LANGUAGE='+gSQLLANGUAGE)
...
Рейтинг: 0 / 0
Дата в курсоре из mssql возвращается с типом текст, а не дата.
    #39670891
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как проверить что подключилось или ошибки посмотреть - знаешь?
...
Рейтинг: 0 / 0
Дата в курсоре из mssql возвращается с типом текст, а не дата.
    #39670897
vova_ukr_lg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T,
подключение нормально проходит, после подключения делается проверка if hSQL>1 ....

после выполнения lnRes=SQLEXEC(hSql,lccmd,curSql), проверяется

IF lnRes<>1
*обработка ошибки
endif


запрос выполняется, данные приходят, вопрос в том, можно ли от сервера получить курсор в котором поле с датами было с типом дата, а не varchar в котором отформатированные даты, чтоб не делать дополнительно преобразование типов?
...
Рейтинг: 0 / 0
Дата в курсоре из mssql возвращается с типом текст, а не дата.
    #39670958
asdor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vova_ukr_lg,
Странно это.
Код: sql
1.
select max(dat) dd from account


Только что проверил. Возвращает дату.
Судя по типу поля, сервер у вас выше 2005.
Смущает, что в других запросах получаете правильно.
И все же какой драйвер?
ОБЯЗАТЕЛЕН нативный, иначе возможны проблемы

Ну и пропишите в запросе для теста прямое преобразование в тип
Код: sql
1.
SELECT cast(max([date]) as date) mydatmax  FROM [seller].[dbo].[rest]



И ради бога, уберите не нужные скобки[]. Мешают читать.
Думаю, что неожиданно косяк окажется в другом месте.
Попробуйте тупо, тот тест, что привели, отдельно выполнить, без своего ПО.
Просто коннект и этот запрос.
...
Рейтинг: 0 / 0
Дата в курсоре из mssql возвращается с типом текст, а не дата.
    #39670960
asdor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vova_ukr_lg,
Увидел в клубе ваш вопрос.
Значит инфа что в других местах....

SQL Server Native Client 11.0
Легко гуглится, бесплатен.
Есть 2 версии, с одинаковым названием.32 и 64 (я переименовываю, что бы отличить)
Ну и возможно есть более свежий)

Заодно и др. косяки поправит.
...
Рейтинг: 0 / 0
Дата в курсоре из mssql возвращается с типом текст, а не дата.
    #39671392
vova_ukr_lg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
asdorvova_ukr_lg,
Увидел в клубе ваш вопрос.
Значит инфа что в других местах....

SQL Server Native Client 11.0
Легко гуглится, бесплатен.
Есть 2 версии, с одинаковым названием.32 и 64 (я переименовываю, что бы отличить)
Ну и возможно есть более свежий)

Заодно и др. косяки поправит.

Спасибо за ответы. Поставил на сервере тип date вместо datetime и изменил драйвер с sql server на sql server native client. Работает правильно, без конвертации в строку.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Дата в курсоре из mssql возвращается с типом текст, а не дата.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]