Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.02.2008, 11:47   #11
chekanoff
Пользователь
 
Аватар для chekanoff
 
Регистрация: 13.11.2007
Сообщений: 81
По умолчанию

народ)) ну че я такой невизучий или тупой (не будем о подробностях)????
проблема с добавлением даты крылась в ее формате: DateTimePicker ее выдает в формате 00.00.0000, а БД MySQL хранит даты в виде 0000.00.00 когда дату вбил в таком формате то все работает))))
но теперь вопрос в том, как ее перекручивать, ведь на сколько я знаю в DateTimePicker нельзя поменять ее стандарт((((
посоветуйте как это делать наиболее просто, не очень хотца разбирать дату, перекидывать ее и собирать!!!
Лучшее образование - самообразование (В.Пикуль)
chekanoff вне форума Ответить с цитированием
Старый 29.02.2008, 12:05   #12
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

chekanoff, вообще, по идее, нужно на сервере устанавливать, с какой локалью он работает, чтобы формат совпадал с Windows. Когда-то в качестве временной "затычки" я делал вот такую штуку:

Код:
function mySQLDateTime2WinDateTime(mdatetime: shortstring): TDateTime;
var
        _DateSeparator : char;
        _ShortDateFormat : shortstring;
        _LongTimeFormat : shortstring;
begin

//'YYYY-MM-DD HH:MM:SS'
        _DateSeparator := DateSeparator;
        _ShortDateFormat := ShortDateFormat;
        _LongTimeFormat := LongTimeFormat;

        DateSeparator:= '-';
        ShortDateFormat := 'YYYY-MM-DD';
        LongTimeFormat := 'HH:MM:SS';

        try
                result := StrToDateTime(mdatetime);
        except
                on E : Exception do result := now;
        end;

        DateSeparator := _DateSeparator;
        ShortDateFormat := _ShortDateFormat;
        LongTimeFormat := _LongTimeFormat;
end;

function WinDateTime2mySQLDateTime(windatetime: TDateTime): shortstring;
begin
//'YYYY-MM-DD HH:MM:SS'
        result := FormatDateTime('yyyy-mm-dd hh:nn:ss', winDateTime);
end;
B_N вне форума Ответить с цитированием
Старый 29.02.2008, 12:20   #13
chekanoff
Пользователь
 
Аватар для chekanoff
 
Регистрация: 13.11.2007
Сообщений: 81
По умолчанию

щас буду пробовать!!!!

такая херня, а в таблице эта сволочь потом отображает дату в нормальном стандарте 00.00.0000))))))

всем большое спасибо))))))
Лучшее образование - самообразование (В.Пикуль)
chekanoff вне форума Ответить с цитированием
Старый 29.02.2008, 14:54   #14
chekanoff
Пользователь
 
Аватар для chekanoff
 
Регистрация: 13.11.2007
Сообщений: 81
По умолчанию

все работает))) большое спасибо!
а еще вопрос такого плана: у меня в БД дата не всегда добавляется. т.е в поле типа DATE надо занести пустую запись, а это у меня не получается((( как это сделать????

помогите кто знает
Лучшее образование - самообразование (В.Пикуль)
chekanoff вне форума Ответить с цитированием
Старый 29.02.2008, 15:05   #15
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Цитата:
Сообщение от chekanoff Посмотреть сообщение
все работает))) большое спасибо!
а еще вопрос такого плана: у меня в БД дата не всегда добавляется. т.е в поле типа DATE надо занести пустую запись, а это у меня не получается((( как это сделать????

помогите кто знает
По-моему для таких случаев лучше задать значение по умолчанию для поля в определении таблицы. Что-нибудь вроде:
Код:
CREATE TABLE  test_db.test_table(
	dt date NOT NULL default 0
);
B_N вне форума Ответить с цитированием
Старый 29.02.2008, 18:54   #16
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

А по-моему, если
Цитата:
в БД дата не всегда добавляется
то это поле ни в коем случае нельзя делать NOT NULL...
mihali4 вне форума Ответить с цитированием
Старый 29.02.2008, 19:05   #17
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Цитата:
Сообщение от mihali4 Посмотреть сообщение
А по-моему, если

то это поле ни в коем случае нельзя делать NOT NULL...
Ну почему "ни в коем случае"... Я перед тем как постить пример тоже думал, не выбросить ли not null, но мало ли какие потом возникнут проблемы с выборками. А так лежит там нолик, и пускай лежит.
B_N вне форума Ответить с цитированием
Старый 29.02.2008, 19:09   #18
chekanoff
Пользователь
 
Аватар для chekanoff
 
Регистрация: 13.11.2007
Сообщений: 81
По умолчанию

по умолчанию у меня стоит 0000.00.00.
если в SQL запросе я заполняю другие поля, а поле DATA пропускаю, выкидывает ошибку!!!
Лучшее образование - самообразование (В.Пикуль)
chekanoff вне форума Ответить с цитированием
Старый 29.02.2008, 19:47   #19
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Цитата:
Сообщение от chekanoff Посмотреть сообщение
по умолчанию у меня стоит 0000.00.00.
если в SQL запросе я заполняю другие поля, а поле DATA пропускаю, выкидывает ошибку!!!
А Вы его не пропускайте, а ставьте DEFAULT. Если через "VALUES".
B_N вне форума Ответить с цитированием
Старый 29.02.2008, 20:24   #20
chekanoff
Пользователь
 
Аватар для chekanoff
 
Регистрация: 13.11.2007
Сообщений: 81
По умолчанию

Код:
insert into aaa (P1,P2,Data,P3)  
values ("Петр","Иваныч",DEFAULT,"мужчина")
я вас правильно понял????
Лучшее образование - самообразование (В.Пикуль)
chekanoff вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как написать в коде чтобы диапазон А копировался как значение в диапазон В. Dorvir Microsoft Office Excel 12 23.05.2008 22:11
Диапазон оператора switch Иллидан Общие вопросы C/C++ 4 18.05.2008 00:10
диапазон double и погрешности вычислений ilyagoo Общие вопросы C/C++ 4 13.12.2007 17:29
Как указать диапазон чисел? Inbox Общие вопросы Delphi 2 29.06.2007 01:21
неразрывный диапазон zetrix Microsoft Office Excel 0 31.10.2006 07:26