Текущий архив: 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.45 MB
Время: 0.038 c