Topic: Дублирование записи и ВЕЩЕСТВЕННОЕ ЧИСЛО

У себя в проекте я сделал возможность создания новой записи на основе уже существующей

procedure MenuClick1;
   var
   sID: string;
   poperednij_record_count: string;
   record_count: string;
   data_vymoghy: string;
   borzhnyk: string;
   kod_borzhnyka: string;
   bank_borzhnyka: string;
   mfo_banku: string;
   rakhunok: string;
   suma: string;
   pryznachennja_platezhu: string;
   dvs: string;
   adresa_dvs: string;
   kod_dvs: string;
   bank_dvs: string;
   mfo_banku_dvs: string;
   rakhunok_dvs: string;
   diljnycja: string;
begin
   sID := IntToStr(frmGholovna.TableGrid_vymoghy.dbItemID);
   if sID = '-1' then Exit;

   poperednij_record_count := SQLExecute('SELECT MAX(record_count) FROM vymoghy');
   if  poperednij_record_count <> '' then record_count := IntToStr(StrToInt(poperednij_record_count) + 1) else record_count := IntToStr(1);
   data_vymoghy := FormatDateTime('yyyy-MM-DD 00:00:00.000', now);
   borzhnyk := ReplaceStr(SQLExecute ('SELECT borzhnyk FROM vymoghy WHERE id = ' + sID), '"', '""');
   kod_borzhnyka := SQLExecute('SELECT kod_borzhnyka FROM vymoghy WHERE id = ' + sID);
   bank_borzhnyka := ReplaceStr(SQLExecute ('SELECT bank_borzhnyka FROM vymoghy WHERE id = ' + sID), '"', '""');
   mfo_banku := SQLExecute('SELECT mfo_banku FROM vymoghy WHERE id = ' + sID);
   rakhunok := SQLExecute('SELECT rakhunok FROM vymoghy WHERE id = ' + sID);
   suma := SQLExecute('SELECT suma FROM vymoghy WHERE id = ' + sID);
   pryznachennja_platezhu := ReplaceStr(SQLExecute ('SELECT pryznachennja_platezhu FROM vymoghy WHERE id = ' + sID), '"', '""');
   dvs := SQLExecute('SELECT dvs FROM vymoghy WHERE id = ' + sID);
   adresa_dvs := SQLExecute ('SELECT adresa_dvs FROM vymoghy WHERE id = ' + sID);
   kod_dvs := SQLExecute('SELECT kod_dvs FROM vymoghy WHERE id = ' + sID);
   bank_dvs := SQLExecute('SELECT bank_dvs FROM vymoghy WHERE id = ' + sID);
   mfo_banku_dvs := SQLExecute('SELECT mfo_banku_dvs FROM vymoghy WHERE id = ' + sID);
   rakhunok_dvs := SQLExecute('SELECT rakhunok_dvs FROM vymoghy WHERE id = ' + sID);
   diljnycja := SQLExecute('SELECT diljnycja FROM vymoghy WHERE id = ' + sID);

   SQLExecute ('INSERT INTO vymoghy (record_count, data_vymoghy, borzhnyk, kod_borzhnyka, bank_borzhnyka, mfo_banku, rakhunok, suma, pryznachennja_platezhu, dvs, adresa_dvs, kod_dvs, bank_dvs, mfo_banku_dvs, rakhunok_dvs, diljnycja) VALUES ("'+record_count+'","'+data_vymoghy+'","'+borzhnyk+'","'+kod_borzhnyka+'","'+bank_borzhnyka+'","'+mfo_banku+'","'+rakhunok+'","'+suma+'","'+pryznachennja_platezhu+'","'+dvs+'","'+adresa_dvs+'","'+kod_dvs+'","'+bank_dvs+'","'+mfo_banku_dvs+'","'+rakhunok_dvs+'","'+diljnycja+'")' );
   frmGholovna.TableGrid_vymoghy.dbUpdate;
   frmGholovna.TableGrid_vymoghy.dbItemID := Last_Insert_id('vymoghy');

   frmGholovna.button_redaghuvaty_vymoghu.Click;
end;

Но существует проблема с дублированием поля сумма (ВЕЩЕСТВ. ЧИСЛО). При открытии записи в соответствующем поле формы просмотра сумма отображается в формате с точкой, например, 145.52 вместо стандартного 145,52. Если нажать кнопку сохранения, то формат преобразуется в обычный - с запятой. А если закрыть форму показа без сохранения, то в гриде сумма 145,52 отображается как 145.

Re: Дублирование записи и ВЕЩЕСТВЕННОЕ ЧИСЛО

К сожалению в коде ошибки не вижу, пожалуйста пришлите ваш проект на support@drive-software.com
со ссылкой на данный топик.

Dmitry.

Re: Дублирование записи и ВЕЩЕСТВЕННОЕ ЧИСЛО

Спасибо за отклик.
Разобрался сам.
код

suma := SQLExecute('SELECT suma FROM vymoghy WHERE id = ' + sID);

заменил на

suma := ReplaceStr(SQLExecute('SELECT suma FROM vymoghy WHERE id = '+ sID), ',', '.');