Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

установка формата даты [D7, MSSQL]


WellSlava ©   (2004-11-26 14:13:00) 

В MS SQL устанавливаю формат даты:
Set DateFomat dmy... пишет, что все выполнено, пытаюсь вводить данные в этом формате - ошибка преобразования... Select выдает тоже в старом формате. что это может быть?


sniknik   (2004-11-29 13:40:00) [1]

в примере ты из Now (дататайм) делаеш строку, а даже если и ввод строкой, не лутше ли преобразовать на месте на клиенте с полным контролем а не посылать на сервер вероятно неверную строчку? (ну ошибся юзер, с кем не бывает)


paul_k   (2004-11-29 11:57:00) [2]

sniknik ©   (28.11.04 20:55) [13]

>> и уже в процедуре перевожу в datetime
> "замечательная" идеология! ;) перевести дату в строку
> чтобы после перевести в дату...

Да нет.. Усер вводит тоже в строке по 3-му формату.
Преобразования приведены применительно к данному примеру.


sniknik   (2004-11-28 20:55:00) [3]

> и уже в процедуре перевожу в datetime
"замечательная" идеология! ;) перевести дату в строку чтобы после перевести в дату...

> код:
>  qModify.ParamByName('Begin_Date').asDate := edtDate.Date;

> и вот на это ругается...
подозреваю что на несоответствие типов... (ну тут уж, сам спутал - сам дурак)... а так, идея верная.

> а формат даты (dmy) нужен на всю базу данных...
> Как его установить?
именно так как у тебя в вопросе...
только ошибку ты скорее всего еще в дельфях получаеш, т.к. формат   отображения/преобразованийдаты из строки в MSSQL может не совпадать с дельфевым...
да и не нужно это, оперируй датами а не их образами в строке.


paul_k   (2004-11-28 20:26:00) [4]

Не знаю, может я не прав, но в таких случаях пишу иначе
var
str: TStrings;
DSep : char;
..............................
dSep:=DateSeparator;
DateSeparator:='/';
str:=qXXX.SQL;
qXXX.SQL.Text:='Update Table'+#13+
              ' set bDate = convert(datetime,'+QuotedStr(FormatDateTime('dd/mm/yy', Now))+',3)'+#13+
              'where bla bla bla' ;
qXXX.ExecSQL;
qXXX.SQL:=str;
DateSeparator:=dSep;


Но чаще все изменения делаю в хранимых процедурах. Параметром передаю строку даты в третьем формате (дд/мм/гг) и уже в процедуре перевожу в datetime


Term   (2004-11-28 20:21:00) [5]


> Set DateFomat dmy...

кажется это нужно указывать в каждом запросе, так как эта установка действует для конкретного запроса


WellSlava   (2004-11-28 19:44:00) [6]

а формат даты (dmy) нужен на всю базу данных...
Как его установить?


WellSlava   (2004-11-28 19:42:00) [7]

код:
 qModify.ParamByName('Begin_Date').asDate := edtDate.Date;

и вот на это ругается...


Fay   (2004-11-26 21:51:00) [8]

2 WellSlava   (26.11.04 15:36) [5]
Пиши в егородном формате - '20041125'


Ega23   (2004-11-26 17:09:00) [9]

WellSlava   (26.11.04 15:36) [5]

DateTimeToString(aDate,'"{ts''" yyyy-mm-dd hh:nn:ss"'' }"',i);


paul_k   (2004-11-26 15:44:00) [10]

на клиенте где?
образец такого присваивания можно?
сервер справедливо пишет что полю типа datetime ты пыитаешся присвоить символьное значение.


WellSlava   (2004-11-26 15:36:00) [11]

иными словами на клиенте я в соответствующий параметр записываю дату в нашем родном формате - '25.11.2004'. Выдает ошибку "Syntax error converting datetime from character string."


Anatoly Podgoretsky   (2004-11-26 14:56:00) [12]

Зависит от того где вводишь, это же не действует глобально. Если надо другой формат, глобального действия то нужно установить сервер с нуля, если для отдельного пользователя, то надо ему установить формат, если для сессия, то тоже в соответственно. А твой вопрос некорректо поставлен, поскольку неизвестно где ты это делаешь и в каком контексте.


Fay   (2004-11-26 14:33:00) [13]

Вы, видимо, не очень хорошо представляете себе, что такое "отображение данных". Формат самой даты не имеет ничего общего с тем, что Вы хотите увидеть на экране.


WellSlava   (2004-11-26 14:24:00) [14]

нет.. зачем мне конвертить. Мне надо настроить так как мне надо. Или MS SQL этого не умеет делать? Я просто с ним общаюсь всего неделю.


Fay   (2004-11-26 14:18:00) [15]

BOL->convert


Наверх

Титульная страница Поиск, карта сайта Написать письмо