don_Pedro |
Отправлено: 01.03.2006, 21:55 |
|
Не зарегистрирован
|
Вот такая вот проблема возникла:
пишу на Билдере 6-м прогу, в которой имеется вот такой инсерт (бд — Ms SQL)
CODE |
QryInsUsTotal->SQL->Text ="use baza; insert into accounts(pay_id, total_sum) values ('40', "+EdSumm->Text+")";
QryInsUsTotal->ExecSQL();
QryInsUsTotal->Close();
delete QryInsUsTotal;
QryInsUsTotal=NULL;
|
EdSumm->Text — это текст компонента TEdit
тип столбца total_sum — Money
Когда в EdSumm->Text стоит целое число, то никаких проблем нету, добавляется нормально, но когда ввожу число типа 100,50 то вылетает.
Кто-нить подскажет почему и как с этим бороться? т.е. Правильный пример этого куска кода |
|
Valdemar |
Отправлено: 02.03.2006, 08:36 |
|
Мастер участка
Группа: Участник
Сообщений: 433
|
Может в качестве разделителя надо использовать точку, а не запятую? |
|
don_Pedro |
Отправлено: 02.03.2006, 11:16 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 3
|
Собсно уже решил проблему
Просто то значение, которое вводится в Едите EdSumm потом еще используется для других операций, поэтому там надо было использовать именно запятую. Просто перед тем, как передать значение EdSumm->Text в инсерт, заменяю запятую на точку, т.е.
CODE | AnsiString syma=EdSumm->Text;
syma.Insert(".",syma.AnsiPos(","));
syma.Delete(syma.AnsiPos(","),1);
QryInsUsTotal->SQL->Text ="use baza; insert into accounts(pay_id, total_sum) values ('40', "+syma+")";
QryInsUsTotal->ExecSQL();
QryInsUsTotal->Close();
delete QryInsUsTotal;
QryInsUsTotal=NULL;
|
Но сирано спасибо
может кому-нить пригодится
З.Ы. а я уже зарегился здеся
|
|
AVC |
Отправлено: 02.03.2006, 11:59 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
Нормальное решение — использовать параметризованный запрос + вот совсем недавно было Access и вставка действительного числа ==Error |
|
|