Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.07.11;
Скачать: CL | DM;

Вниз

Неполучается сделать update записи.   Найти похожие ветки 

 
Леонид   (2005-06-02 13:16) [0]

Это код UpdateSQL, ModifySQL

update pribor
set
 RN = :RN,
 NomerPP = :NomerPP,
 Naimen = :Naimen,
 Tip = :Tip,
 Predel = :Predel,
 NomerZ = :NomerZ,
 DataPov = :DataPov,
 DataNext = :DataNext,
 Inventar = :Inventar,
 Ceh = :Ceh,
 Mesto = :Mesto,
 Prim = :Prim
where
 RN = :OLD_RN


Это код для изм. записи.

procedure TPribor_Form.Button1Click(Sender: TObject);
var
  i, nNomerPP, oldRN : integer;
  nNaimen : String;
begin
 oldRN:=DM.PriborSQL.FieldByName("RN").Value;
//Изменяю запись с пом UpdateSQL
 DM.PriborSQL.Edit;
//Присваиваю полям (параметрам) в запросе значения
 DM.PriborSQL.FieldByName("RN").Value:=oldRN;
   if Edit1.Text = "" then
      DM.PriborSQL.FieldByName("NomerPP").Clear
   else
   DM.PriborSQL.FieldByName("NomerPP").Value:=StrToInt(Edit1.text);
   DM.PriborSQL.FieldByName("Naimen").Value:=ComboBox1.Text;
   DM.PriborSQL.FieldByName("Tip").Value:=Edit2.text;
   DM.PriborSQL.FieldByName("Predel").Value:=Edit3.text;
   DM.PriborSQL.FieldByName("NomerZ").Value:=Edit4.text;
     if MaskEdit1.Text = "1.  .  " then
        DM.PriborSQL.FieldByName("DataPov").Clear
   else
   DM.PriborSQL.FieldByName("DataPov").Value:=StrToDate(MaskEdit1.text);
     if MaskEdit2.Text = "1.  .  " then
     DM.PriborSQL.FieldByName("DataNext").Clear
   else
   DM.PriborSQL.FieldByName("DataNext").Value:=StrToDate(MaskEdit2.text);
   DM.PriborSQL.FieldByName("Inventar").Value:=Edit5.text;
   DM.PriborSQL.FieldByName("Ceh").Value:=ComboBox2.text;
   DM.PriborSQL.FieldByName("Mesto").Value:=Edit6.text;
   DM.PriborSQL.FieldByName("Prim").Value:=Edit7.text;
//Завершение редактирование записи
   DM.PriborSQL.Post;
//Делаю из кэша запись в таблицу
   if DM.PriborSQL.UpdatesPending
     then DM.PriborSQL.ApplyUpdates;
   nNomerPP:=DM.PriborSQLNomerPP.Value;
   nNaimen:=DM.PriborSQLNaimen.Value;
//Переоткрываю базу, чтобы была нормальная выборка с сортировкой
   DM.PriborSQL.Active:=false;
   DM.PriborSQL.Active:=true;
   SaveButton.Enabled:=false;
   Pribor_Form.ActiveControl:=GroupBox1;
//Очищаю все поля ввода от старых значений.
   for i:=0 to ComponentCount-1 do
   if Components[i] is TEdit then
  (Components[i] as TEdit).Text:="";
   for i:=0 to ComponentCount-1 do
   if Components[i] is TMaskEdit then
  (Components[i] as TMaskEdit).Text:="";
   for i:=0 to ComponentCount-1 do
   if Components[i] is TCombobox then
  (Components[i] as TCombobox).Text:="";
   DM.PriborSQL.Locate("NomerPP", nNomerPP, [loPartialKey]);
   DM.PriborSQL.Locate("Naimen", nNaimen, [loPartialKey]);
   Pribor_Status.Panels[0].Text:= "Всего записей " + IntToStr(DM.PriborSQL.RecordCount);
   Pribor_Status.Panels[1].Text:="Была изменена запись";
end;

Поле RN - автоинкриментное и ключевое.
Не пойму, что здесь не так.


 
Sergey13 ©   (2005-06-02 13:20) [1]

oldRN:=DM.PriborSQL.FieldByName("RN").Value;
//Присваиваю полям (параметрам) в запросе значения
DM.PriborSQL.FieldByName("RN").Value:=oldRN;

Вот это зачем?
Если
>Поле RN - автоинкриментное и ключевое.
то и не трогай его никогда.

И
RN = :RN,
из запроса выкинь, чтоб не мешалось.


 
Леонид   (2005-06-02 13:26) [2]

Спасибо. Все работает.



Страницы: 1 вся ветка

Текущий архив: 2005.07.11;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.027 c
14-1117815608
Андрей Жук
2005-06-03 20:20
2005.07.11
О геноциде


14-1118203605
lookin
2005-06-08 08:06
2005.07.11
Восстановить нетекстовый файл, отредактированный в Блокнот


6-1112928016
Veles
2005-04-08 06:40
2005.07.11
Скорость поиска компьютера по IP


4-1115870523
ORMADA
2005-05-12 08:02
2005.07.11
Созадать иконку (ico) на WinApi


1-1118481620
4ubaka
2005-06-11 13:20
2005.07.11
Поиск email в тексте TMemo