Главная страница
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.085 c
14-1118253491
redlord
2005-06-08 21:58
2005.07.11
teamspeak2 живой базар


9-1112235066
Xeno
2005-03-31 06:11
2005.07.11
BumpMapping в GLScene


4-1116186014
Gnut
2005-05-15 23:40
2005.07.11
Обои на раб. стол.


1-1118756542
olevacho
2005-06-14 17:42
2005.07.11
Как сделать приложение сервисом


14-1118295615
Ega23
2005-06-09 09:40
2005.07.11
А куда дни рождения делись?