Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.71/62: Рейтинг темы: голосов - 62, средняя оценка - 4.71
36 / 36 / 1
Регистрация: 06.12.2010
Сообщений: 205

Неправильное отображение времени

28.03.2011, 02:59. Показов 12943. Ответов 84
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть маленькая база данных (данные сохраняются на Access). Есть колонка куда вношу время (допустим 14:37). Изменения производятся в отдельной форме. Пишу 14:37, жму сохранить. На главной форме время отображается по другому: 30.12.1899 14:37. Уже готов с этим смириться, но как Вы видите дата отображается неправильно, и как бы я не экспериментировал с EditMask и с настройками даты и время через панель управления упорно пишет 30 декабря 1899 года.
Тут мне подсказали, что в базе то хранится все равно дата-время
а так показывает потому, что при записи в поле я отрезаю дату, а пустая она как раз ресетится в 30.12.1899 и раз я вношу только время, то нужно обрезать дату, либо, если нужно запоминать с текущей датой, то добавлять её при записи.
Я понимаю. что это возможно очень просто, но всё таки подскажите как обрезать, чтобы отражалось только время.
Спасибо.

Добавлено через 25 минут
_____________________________
Поле время текстовым типом делать не очень хочется.
Может быть существуют другие варианты??
1
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.03.2011, 02:59
Ответы с готовыми решениями:

Неправильное отображение времени из таблицы в DbGrid-е
Привет! Столкнулся с проблемой: В базе данных, в ячейке находится время (12:12), но в программе в DBGrid время отображается (30.12.1899...

Неправильное отображение ComboBox-a
ComboBox при запуске программы ещё до выбора чего-нибудь из выпадающего списка имеет такую рамку как на рисунке. При этом второй,...

Неправильное отображение надписей грида
Добрый день, компонент dbgrideh отображает непонятные символы в searchpanel и при startloadingstatus. Кто сталкивался? Подскажите)

84
36 / 36 / 1
Регистрация: 06.12.2010
Сообщений: 205
08.04.2011, 12:01  [ТС]
Студворк — интернет-сервис помощи студентам
ой забыл.
Фильтрацию сделал так:

form1.BAZA.Filtered:=False;

form1.BAZA.Filter:= '[Маршрут]='+QuotedStr(Edit1.Text);
form1.BAZA.Filtered:=True;
form8.Close; // НА 8 форме находятся едит и кнопки



Поиск тоже сделал.


Теперь проблема лишь в печати...
ПРо печать был создал отдельный пост.
Гляньте пожалуйста.
Добавление данныз в БД Acsess через Делфи.

2ой пост с верху.

Добавлено через 26 минут
Ах, да, ещё
Сделал Редактирование

form1.BAZA.Edit;
form1.BAZA.FieldByName('Маршрут').AsStri ng:=Edit1.Text ;
form1.BAZA.FieldByName('Цена').AsFloat:= StrToInt(Edit2.Text);
form1.BAZA.FieldByName('Время').AsString :=Edit3.Text ;
form1.BAZA.FieldByName('Кол-во мест').AsString:=Edit4.Text ;
form1.BAZA.Post;
form13.Close;


Вот такоим способ.... Но хотелось бы чтобы ДАННЫЕ которые я редактирую появлялись в Едитах. и я там их редактировал. ТАкое возможно??
0
72 / 64 / 3
Регистрация: 13.05.2010
Сообщений: 349
08.04.2011, 12:27
если будешь использовать DBEdit туда можно с базы данные выводить.

я всю тему не читала, но что-то увидела про DBGrid, можно с него данные в Edit'ы записывать (главное не запутаться с событиями когда читаешь данные из базы, а когда записываешь их туда )
0
36 / 36 / 1
Регистрация: 06.12.2010
Сообщений: 205
08.04.2011, 12:36  [ТС]
Код который я привёл выше всё правильно редактирует запись...
Но в едитах пусто.. а я хочу чтобы были данные из той стркои которую я выбрал
0
72 / 64 / 3
Регистрация: 13.05.2010
Сообщений: 349
08.04.2011, 12:57
Код который я привёл выше всё правильно редактирует запись...
Но в едитах пусто.. а я хочу чтобы были данные из той стркои которую я выбрал
тогда напиши в событие DBGrid'a OnClick как-то так
Delphi
1
Edit1.Text:=DBGrid1.DataSource.DataSet.Fields[0].Value;
если только у тебя редактирование БД не описывается в событии OnChange какого-нибудь компонента.
0
283 / 262 / 32
Регистрация: 11.11.2009
Сообщений: 605
08.04.2011, 21:32
Цитата Сообщение от Krit-Ydachnik Посмотреть сообщение
Код который я привёл выше всё правильно редактирует запись...
Но в едитах пусто.. а я хочу чтобы были данные из той стркои которую я выбрал
Ксеня правильно говорит, вместо того чтоб гонять ручками данные между эдитом и таблицей, используй TDBEdit и другие TDB... компоненты
1
36 / 36 / 1
Регистрация: 06.12.2010
Сообщений: 205
08.04.2011, 21:38  [ТС]
Edit1.Text:=DBGrid1.DataSource.DataSet.F ields[0].Value;

НА DBGrid1 выдаёт ошибку(((


И печать я сделал так
Code
1
2
Form1.PrintScale := poPrintToFit;
Form1.Print;

Оно печатает всю форму.
А мне надо только таблицу(((

Я не понимаю(( Объясните поподробней пожалуйста.
0
72 / 64 / 3
Регистрация: 13.05.2010
Сообщений: 349
08.04.2011, 22:10
Цитата Сообщение от Krit-Ydachnik Посмотреть сообщение
НА DBGrid1 выдаёт ошибку(((
там наверное надо написать
Delphi
1
Edit1.Text:=DBGrid1.DataSource.DataSet.Fields.Field[0].Value;
или
Delphi
1
Edit1.Text:=DBGrid1.DataSource.DataSet.FieldByName('имя_столбца').Value;
посмотри какие есть свойства у твоего DataSet'a
0
36 / 36 / 1
Регистрация: 06.12.2010
Сообщений: 205
08.04.2011, 23:31  [ТС]
В обоих когдах на слове DBRid1 выдаёт ошибку.((

Добавлено через 52 секунды
Какие именно сойства а ДатаСэте интересует?

Добавлено через 2 минуты
[Error] Unit13.pas(44): Undeclared identifier: 'DBGrid1'

Добавлено через 48 минут
Может быть выскакивает ошибка птомучто мы обращаемся к тому что нет на данной форме.
Тогда обращаться надо так:
Edit1.Text := form1.DBGrid1.DataSource.DataSet.FieldBy Name('Маршрут').Value;


Через форм 1.

Программа запускается..
Но нажимаю редактировать и поле Edit1 - пустое((((
0
72 / 64 / 3
Регистрация: 13.05.2010
Сообщений: 349
08.04.2011, 23:44
Delphi
1
Но нажимаю редактировать и поле Edit1 - пустое((((
что нажимаешь?
0
36 / 36 / 1
Регистрация: 06.12.2010
Сообщений: 205
08.04.2011, 23:47  [ТС]
У меня на форме 1 расположена моя база.
В меню есть кнопка Правка и там подпункт Редактировать.
Когда нажимаю редактировать Я оказываюсь на другой форме. Форме номер 13. Unit13.pas
ТАк вот там у меня 4 Едита.
1) Маршрут
2) Цена
3) Время
4) Кол-во мест.

ТАкже 2 кнопки.
ОК и отмена.


ТАк вот когда я нажимаю на кнопку редактирвовать я хочу чтобы в эти поля автоматически заполнилось то, где был установлен курсор..
Вот.
Вроде понятно объяснил))
0
72 / 64 / 3
Регистрация: 13.05.2010
Сообщений: 349
08.04.2011, 23:51
в событии onclick form1.DBGrid'a пишешь
Form13.Edit1.Text:=DBGrid1.DataSource... .
1
36 / 36 / 1
Регистрация: 06.12.2010
Сообщений: 205
08.04.2011, 23:59  [ТС]
Есть только OnDbleClick

OnClick же есть толкьо на кнопках...

А на 1ой форме кнопок нет
1
36 / 36 / 1
Регистрация: 06.12.2010
Сообщений: 205
09.04.2011, 00:17  [ТС]
Вот если не понятно где и как - фотка.
Я нажимаю правка редактировать открывается окно то что вверху и там в едитах надо чтоы отобразилось то, что было активным. т.е. где мышка стояла.
Миниатюры
Неправильное отображение времени  
1
72 / 64 / 3
Регистрация: 13.05.2010
Сообщений: 349
09.04.2011, 17:56
Krit-Ydachnik, посмотри какие есть события в DBGrid'e что тебе подойдет я не знаю.. можт OnCellClick

у меня на двойной клик по grid'у открывалась форма (на редактирование) в которой заполнялись label'ы (sql запросом)
2
36 / 36 / 1
Регистрация: 06.12.2010
Сообщений: 205
10.04.2011, 00:44  [ТС]
Сделал КНОПКУ на form1 там где база.
Как вам такой код?? Что скажите??
В едитах появляется в 13 форме то что было выделено...
Но всеранво есть несколкьо проблемок...

var
edt : boolean;
begin

if edt then
begin


Form13.Edit1.Text := BAZA.FieldByName('Маршрут').Text;
Form13.Edit2.Text := BAZA.FieldByName('Цена').Text;
Form13.Edit3.Text := BAZA.FieldByName('Время').Text;
Form13.Edit4.Text := BAZA.FieldByName('Кол-во мест').Text;
end ;

if Form13.ShowModal = mrOk then
begin

if edt then BAZA.Edit
else BAZA.Insert;

BAZA.FieldByName('Маршрут').Text:=Form13 .Edit1.Text;
BAZA.FieldByName('Цена'). Text:=Form13.Edit2.Text;
BAZA.FieldByName('Время').Text:=Form13.E dit3.Text;
BAZA.FieldByName('Кол-во мест'). Text:=Form13.Edit4.Text;



BAZA.Insert;

BAZA.Post;
end;
Добавлено через 6 минут
Проблема в том что я ранье в коде писал::

TDateTimeField(BAZA.FieldByName('Время') ).DisplayFormat := 'HH:NN';
TCurrencyField(BAZA.FieldByName('Цена')) .DisplayFormat := ',0. p.';
И получается если мну в пункте цена будет

65000
то будет отображаться 65 000 р.

А когда пытаюсь редактировать(кнопкой) то оно пишет что пробелов быт ьнеможет т буквы тже и т.д.
Ведь этоЧисловое поле.... Как сделать чтобы при переносе в едит из ббазы переносилось не 65 000 р.
А 65000 просто.

И второе:

Время у меня в БД к прмиеру 16:42

Я написал это
TDateTimeField(BAZA.FieldByName('Время') ).DisplayFormat := 'HH:NN';
потмоучто без него отображает:
30.12.1899 16:42:00

А мне надо только 16:42.

А когда я данные переношу в едит ТАМ где буду редактировать то там отображает 30.12.1899 16:42:00 а надо 16:42.... кто поможет??
1
72 / 64 / 3
Регистрация: 13.05.2010
Сообщений: 349
10.04.2011, 22:21
1.
Цитата Сообщение от Krit-Ydachnik Посмотреть сообщение
TDateTimeField(BAZA.FieldByName('Время') ).DisplayFormat := 'HH:NN';
а если написать это после
Delphi
1
2
if edt then
begin
неправильно работает?

2.
TCurrencyField(BAZA.FieldByName('Цена')) .DisplayFormat := ',0. p.';
а нельзя это вообще не писать ??
2
36 / 36 / 1
Регистрация: 06.12.2010
Сообщений: 205
11.04.2011, 00:18  [ТС]
1.
Конечно писал.
Непомогает.
Пишет 30,12,1899 и толкьо потом моё время.

2.
Ну даже если и уберу с 1ым что делать??
1
72 / 64 / 3
Регистрация: 13.05.2010
Сообщений: 349
11.04.2011, 13:49
может подойдет функция copy (я в delphiне проверяла)
Delphi
1
Edit1.Text:=Copy(BAZA.FieldByName('Время').Text, 12, 5);
1
36 / 36 / 1
Регистрация: 06.12.2010
Сообщений: 205
11.04.2011, 15:18  [ТС]
Code
1
Edit1.Text:=Copy(BAZA.FieldByName('Время').Text, 12, 5);
Если так то вконце двоеточие дописывается и выходит 16:02:

А если так

Code
1
Edit1.Text:=Copy(BAZA.FieldByName('Время').Text, 12, 4);
То всё нормально..
Тогда вопрос что значит цифры 12 и 4???


И неподскажите как с рублями сделать??))) Ведь вид 26 250 р. красивее чем 26250

Добавлено через 4 минуты
12 типо значит 12 первых знаков не учитывать да?? а 4 сколкьо учитывать после 12 слева??




МЛИН.
У меня бывает время 09:24 тогда надо 12 и 4 цифры ставить
А бывает 10:26 тогда надо 12 и 5(((


Она первый ноль неучитывает во времени 09:24(((( как избавится??
1
72 / 64 / 3
Регистрация: 13.05.2010
Сообщений: 349
11.04.2011, 17:39
а BAZA это что за элемент?? (твой Grid или Query?)
перед вот этой строкой

Edit1.Text:=Copy(BAZA.FieldByName('Время ').Text, 12, 4);

можно проверять длину строки (функция Length ) и если =19, то copy(... , 12, 5) а если 20, то copy(... , 12, 4)
как-то так.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.04.2011, 17:39

Неправильное отображение шрифтов в Delphi
Открываю базу данных DBF, а там вместо русских букв какие то козябры??? Пробовал реструктуризировать Desktopom - не получается. В Delphi...

Неправильное отображение русских символов
Есть программа в которой выводится список установленных программ и обновлений. Русские символы отображаются знаком вопроса. ...

Неправильное отображение программы в панели задач
Программа нормально запускает главную форму, но если навести курсор на значок в панели задач, то там с заголовком "Project 1"...

Неправильное отображение таблиц и заголовков в Word
добрый день, форумчане. Уже час бьюсь над проблемой. Вообщем хочу через дельфи сделать отчет в ворде. Значит пишу заголовок и...

Неправильное отображение символов в консольном приложении
Необходимо сделать простую таблицу из символов ┘,┌,╪,╫ и.т.д. Пишу write('┘┌╪╫') (для проверки), но консоль отображает не те символы....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла: Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет Новости компьютерного мира и их обсуждение (4) Салют, шампанское, овации! :drink:
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр. Дословно, отклонённая. . .
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru