Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
 Аватар для Ms.Asami
0 / 0 / 0
Регистрация: 30.04.2010
Сообщений: 20

Delphi+IB

07.05.2010, 20:17. Показов 1637. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите, пожалуйста, как прописать условие формата.
У меня автоматически считает сумму в edit в таком виде "123,890", проблема в том что мне нужно, чтоб было в формате "123.890", иначе оно не замечает запятую.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.05.2010, 20:17
Ответы с готовыми решениями:

Что лучше брать Delphi XE2, Delphi XE, Delphi 7?
Привет форумчане! У меня вопрос: что лучше брать Delphi XE2, Delphi XE, Delphi 7? Как вообще различаются серия Delphi XE, и Delphi 7?

Какие отличия Delphi 5, Delphi 6 и Delphi 7
Кто-нибудь юзал Delphi 6? Если да, то напишите, плиз, его отличия от 5-ой версии (плюсы и минусы) Кстати, никто не слышал ничего о Delphi...

ZipForge для Delphi Xe - интерфейс стал выглядеть как в Delphi 2007
Народ!!! Помоготи!!! Установил компонент ZipForge для Delphi Xe и после этого интерфейс моей программы стал таким, как будто я его в delphi...

18
 Аватар для arni
914 / 879 / 62
Регистрация: 06.01.2010
Сообщений: 2,367
Записей в блоге: 6
07.05.2010, 21:18
Цитата Сообщение от Ms.Asami Посмотреть сообщение
Подскажите, пожалуйста, как прописать условие формата.
У меня автоматически считает сумму в edit в таком виде "123,890", проблема в том что мне нужно, чтоб было в формате "123.890", иначе оно не замечает запятую.
Знак-разделитель обычно не регулируется на уровне программы, а задается в "панель управления" -> "Язык и региональные стандарты".

Может подробнее объясните, где у вас проблема вылазит? в какой момент?
0
306 / 187 / 26
Регистрация: 14.02.2010
Сообщений: 547
07.05.2010, 21:24
Меняйте запятую на точку (и коньки на санки), когда посылаете данные в базу
0
 Аватар для arni
914 / 879 / 62
Регистрация: 06.01.2010
Сообщений: 2,367
Записей в блоге: 6
07.05.2010, 21:29
Цитата Сообщение от kukuruku310 Посмотреть сообщение
Меняйте запятую на точку (и коньки на санки), когда посылаете данные в базу
Вот только не надо такого советовать - подставлять костыли туда, где и без них все работать должно.
Не должно при нормальном обращении с DBAware-компонентами возникать такой ситуации. Библиотека доступа (если вобще не TDataSet-класс) должна сама хавать числа с плавающей точкой в любом национальном формате и отдавать базе в должном формате.

Поэтому и спрашиваю: где, как и при каких условиях возникает проблема?
0
306 / 187 / 26
Регистрация: 14.02.2010
Сообщений: 547
07.05.2010, 21:35
Цитата Сообщение от arni Посмотреть сообщение
подставлять костыли туда, где и без них все работать должно
ага
insert into Table(ID, d_value) values (123, 123,34) - я бы поглядел что вам писюк на ето скажет

Добавлено через 1 минуту
Цитата Сообщение от arni Посмотреть сообщение
Библиотека доступа должна сама хавать
должна-то она должна, да не обязана
0
151 / 151 / 3
Регистрация: 05.05.2010
Сообщений: 570
07.05.2010, 21:38
Но все же если требуется сменить разделитель программно, то можно DecimalSeparator : char использовать.
0
 Аватар для arni
914 / 879 / 62
Регистрация: 06.01.2010
Сообщений: 2,367
Записей в блоге: 6
07.05.2010, 21:43
Цитата Сообщение от kukuruku310 Посмотреть сообщение
ага
insert into Table(ID, d_value) values (123, 123,34) - я бы поглядел что вам писюк на ето скажет

Добавлено через 1 минуту

должна-то она должна, да не обязана
Что ж, великолепный пример. Нормальный программер напишет:
Code
1
2
3
4
Query.SQL.Text:='insert into Table(ID, d_value) values (:V1, :V2)';
Query.ParamByName('V1').AsCurrency:=123; 
Query.ParamByName('V2').AsCurrency:=123.34;
Query.ExecQuery;
Использование параметров решит все проблемы уже на этапе компиляции этого кода.

Более того, можно не писать и этого. Топикстартер упоминал, что данные получает через Edit. Использование TDBEdit с привязкой к источнику данных и полю само положит данные так, как надо, и без написание кода.
0
306 / 187 / 26
Регистрация: 14.02.2010
Сообщений: 547
07.05.2010, 21:51
Цитата Сообщение от arni Посмотреть сообщение
Нормальный программер напишет
Не всегда...
Цитата Сообщение от arni Посмотреть сообщение
Использование TDBEdit с привязкой к источнику данных и полю само положит данные так, как надо, и без написание кода
А если не хоцца использовать TDBEdit? А если не хоцца пользовать параметры? А если хоцца, чтобы работало цуть-цуть побыстрее? И не весило кучу-кучу метров?
0
151 / 151 / 3
Регистрация: 05.05.2010
Сообщений: 570
07.05.2010, 21:54
Какой спор из-за точки/запятой (нужное подчеркнуть)
0
 Аватар для arni
914 / 879 / 62
Регистрация: 06.01.2010
Сообщений: 2,367
Записей в блоге: 6
07.05.2010, 21:58
Цитата Сообщение от kukuruku310 Посмотреть сообщение
А если не хоцца использовать TDBEdit? А если не хоцца пользовать параметры? А если хоцца, чтобы работало цуть-цуть побыстрее? И не весило кучу-кучу метров?
Надежность и гибкость кода для себя ставлю превыше скоростных качеств. С трудом представляю, как параметры могут сколько-нибудь замедлить исполнение.
Впрочем, приоритеты другим не навязываю.
0
306 / 187 / 26
Регистрация: 14.02.2010
Сообщений: 547
07.05.2010, 22:08
Прошу пардону, если что сказал не так. Просто проблема с точкой/запятой в базах данных весьма распространена, особенно если не юзать каких-то полностью готовых компонент, которые достаточно бросит на форму. Но вот в отношении гибкости и всего остального это, к сожалению, не способствует. И еще раз пардон.
0
151 / 151 / 3
Регистрация: 05.05.2010
Сообщений: 570
07.05.2010, 22:17
Встречаются еще траблы с "." и "/" в полях типа дата. У новичков постоянные проблемы, тем более, что штатных DBAware-компонентов нету (а может я нуб?)...
0
 Аватар для Ms.Asami
0 / 0 / 0
Регистрация: 30.04.2010
Сообщений: 20
07.05.2010, 22:34  [ТС]
ой, какой спор начался. а ошибка вылетает при добавлении в БД данных и вылетает ошибка типа:

Project1.exe raised exception class EConvertError with message ''' is not a valid floating point value'. Process stopped.
Delphi
1
2
3
4
5
6
7
var
  n,m:double;
begin
Edit3.Clear;
n:= strtofloat(Edit1.Text);
m:=strtofloat(Edit2.Text);
Edit3.Text := FloatToStr(n*m);
вот такое у меня в поле сумма и при передаче в БД, неучитывает запятую, потом через время или сразу вылетает такая ошибка
0
 Аватар для arni
914 / 879 / 62
Регистрация: 06.01.2010
Сообщений: 2,367
Записей в блоге: 6
07.05.2010, 22:41
Цитата Сообщение от Ms.Asami Посмотреть сообщение
Delphi
1
2
3
4
5
6
7
var
  n,m:double;
begin
Edit3.Clear;
n:= strtofloat(Edit1.Text);
m:=strtofloat(Edit2.Text);
Edit3.Text := FloatToStr(n*m);
Остаюсь при своем мнении: необходимо использовать специализированные компоненты для редактированию чисел с плавающей точкой. Например, TRxCalcEdit/TRxCurrencyEdit из библиотеки RxLib. Они защитят от применения "не того" знака-разделителя, а когда дело дойдет до присваивания не потребуются никакие StrToFloat - есть прямое свойство Value. За счет незначительно распухания EXEшника на выходе получаем абсолютно безопасное и предсказуемое приложение.
0
 Аватар для Ms.Asami
0 / 0 / 0
Регистрация: 30.04.2010
Сообщений: 20
07.05.2010, 22:51  [ТС]
Цитата Сообщение от arni Посмотреть сообщение
Остаюсь при своем мнении: необходимо использовать специализированные компоненты для редактированию чисел с плавающей точкой. Например, TRxCalcEdit/TRxCurrencyEdit из библиотеки RxLib. Они защитят от применения "не того" знака-разделителя, а когда дело дойдет до присваивания не потребуются никакие StrToFloat - есть прямое свойство Value. За счет незначительно распухания EXEшника на выходе получаем абсолютно безопасное и предсказуемое приложение.
извиняюсь, за совсем глупый вопрос, а где найти эти компоненты?
0
 Аватар для arni
914 / 879 / 62
Регистрация: 06.01.2010
Сообщений: 2,367
Записей в блоге: 6
07.05.2010, 22:54
http://rx.delphiplus.org/
1
 Аватар для Ms.Asami
0 / 0 / 0
Регистрация: 30.04.2010
Сообщений: 20
07.05.2010, 23:08  [ТС]
спасибо, за помощь, попробую через эти компоненты, надеюсь заработает. а то оно то работает, то не хочет
0
151 / 151 / 3
Регистрация: 05.05.2010
Сообщений: 570
08.05.2010, 09:18
Цитата Сообщение от arni Посмотреть сообщение
Остаюсь при своем мнении: необходимо использовать специализированные компоненты для редактированию чисел с плавающей точкой. Например, TRxCalcEdit/TRxCurrencyEdit из библиотеки RxLib. Они защитят от применения "не того" знака-разделителя, а когда дело дойдет до присваивания не потребуются никакие StrToFloat - есть прямое свойство Value.
Это, конечно, всё хорошо. Только вот, например, что делать студенту, который пишет лабу дома с использованием сторонних компонентов, при защите этой самой лабы в учебном заведении? Существует достаточно высокая вероятность, что никто ему не позволит ставить сторонние библиотеки...
0
 Аватар для arni
914 / 879 / 62
Регистрация: 06.01.2010
Сообщений: 2,367
Записей в блоге: 6
08.05.2010, 10:10
Цитата Сообщение от harmless Посмотреть сообщение
Это, конечно, всё хорошо. Только вот, например, что делать студенту, который пишет лабу дома с использованием сторонних компонентов, при защите этой самой лабы в учебном заведении? Существует достаточно высокая вероятность, что никто ему не позволит ставить сторонние библиотеки...
Есть такая лажа, не спорю, но я ж про практику программированию вообще говорю, а не о частном случае защиты в ВУЗе. По последнему вопросу: использовать SysUtils.TryStrToFloat - позволит безопастно проверить, а в нужном ли формате в TEdit введено значение, чтобы его можно считать текстовым представлением числа с плавающей точкой.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.05.2010, 10:10
Помогаю со студенческими работами здесь

Переписать часть кода с Delphi на ассемблер (ассемблерные вставки в Delphi)
Добрый вечер. Нужно сделать ассемблерные вставки в программе. Первый раз столкнулся с таким заданием, в языке ассемблера почти ноль....

SQL-запрос в Delphi и в Access один и тот же, но в Delphi не работает
ри обращение к базе в Access я использую код: with ADOQueryMain do begin Active:=false; SQL.Clear; SQL.Add('SELECT Code,...

где найти delphi c компилятором? и с чего начинать программирование в delphi?
здравствуйте, вот начинаю изучать delphi с чего начинать лучше?

Как в Lazarus сделать интерфейс Delphi 2006 вместо Delphi 7?
Добрый вечер! Подскажите пожалуйста, как в Lazarus сделать интерфейс Delphi 2006 вместо Delphi 7? Т.е. чтобы окна были прикрепленные, а не...

Почему функция работающая в Delphi 7 не работает в Delphi 2007 и в 2009 ??
Данный код работал нормально в D7: procedure TForm1.Button1Click(Sender: TObject); begin ShowWindow(Application.Handle, 0); end;...


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru