Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Update которого быть не должно, Ошибка в программе. 
:(
    Опции темы
Алкоголик
Дата 26.4.2012, 08:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 187
Регистрация: 26.1.2004

Репутация: нет
Всего: нет



Здравствуйте.
По таблице в БД произошел update без условия(т.е. все данные стали одинаковые).

Код

procedure TForm1.AllAddBase(NM:string);
var
i,numId:integer;
begin
  case tag of
  1: begin
    IdAll:=GetDataI('SELECT MAX(id) FROM zakaz')+1;
    ibquery2.Close;
    ibquery2.SQL.Clear;
    ibquery2.SQL.Add('INSERT INTO ZAKAZ (ID, NOMER, IDON, IDONA, Vremy, OTONFAM,');
    ibquery2.SQL.Add('OTONNAME, OTONOTCH, OTONAFAM, OTONANAME, OTONAOTCH,');
    ibquery2.SQL.Add('ONFAPPOSLE, ONAFAMPOSLE, SAGS, SDATE, STIME, STATUS');
    if Telefon.Text<>'' then
      ibquery2.SQL.Add(',TELEFON');
    if OnaTelefon.Text<>'' then
      ibquery2.SQL.Add(',ONATELEFON');
    if EMAIL.Text<>'' then
      ibquery2.SQL.Add(',EMAIL');
    ibquery2.SQL.Add(',RASCHET, Ceremon, SUMMA');
    if RzRadioButton2.Checked then
      ibquery2.SQL.Add(',DATAPOKV, FAMILPOKV')
    else
      ibquery2.SQL.Add(',NOMERKV');
    ibquery2.SQL.Add(')');
    ibquery2.SQL.Add('VALUES ('+#39+IntTOStr(IDALL)+#39+', '+#39+NM+#39+', ');
    ibquery2.SQL.Add(#39+IntToStr(Idon)+#39+', '+#39+IntToStr(IdONA)+#39+', ');
    ibquery2.SQL.Add(#39+FormatDateTime('dd.mm.yyyy',Now)+#39+', ');
    ibquery2.SQL.Add(#39+OnFamSags.Text+#39+', '+#39+OnNamSags.Text+#39+', ');
    ibquery2.SQL.Add(#39+OnOtchSags.Text+#39+', '+#39+OnaFamSags.Text+#39+', ');
    ibquery2.SQL.Add(#39+OnaNameSags.Text+#39+', '+#39+OnaOtchSags.Text+#39+', ');
    ibquery2.SQL.Add(#39+OnNewFam.Text+#39+', '+#39+OnaNewFam.Text+#39+', ');
    ibquery2.SQL.Add(#39+IntToStr(Sags.ItemIndex+1)+#39+', '+#39+FormatDateTime('dd.mm.yyyy',RegistrDate.date)+#39+', ');
    ibquery2.SQL.Add(#39+FormatDateTime('hh:nn',RegistrTime.Time)+#39+', '+#39+'0'+#39);
    if Telefon.Text<>'' then
      ibquery2.SQL.Add(', '+#39+Telefon.text+#39);
    if OnaTelefon.Text<>'' then
      ibquery2.SQL.Add(', '+#39+OnaTelefon.text+#39);
    if EMAIL.Text<>'' then
      ibquery2.SQL.Add(', '+#39+EMAIL.text+#39);
    if RzRadioButton1.Checked then
      ibquery2.SQL.Add(','+#39+'0'+#39)
    else
      ibquery2.SQL.Add(','+#39+'1'+#39);
     NumId:=Integer(ceremoniy.Items.Objects[ceremoniy.ItemIndex]);
    ibquery2.SQL.Add(', '+#39+IntToStr(NumID)+#39);
    ibquery2.SQL.Add(', '+#39+Summa.Text+#39);
    if RzRadioButton2.Checked then
      ibquery2.SQL.Add(','+#39+FormatDateTime('dd.mm.yyyy',besnalDate.date)+#39+', '+#39+FamilPoKv.Text+#39)
    else
      ibquery2.SQL.Add(','+#39+NOMERKv.Text+#39);
    ibquery2.SQL.Add(')');
  end;
  0:begin
    ibquery2.Close;
    ibquery2.SQL.Clear;
    ibquery2.SQL.Add('update zakaz set ');
    ibquery2.SQL.Add('OTONFAM='+#39+OnFamSags.Text+#39);
    ibquery2.SQL.Add(',OTONNAME='+#39+OnNamSags.Text+#39);
    ibquery2.SQL.Add(',OTONOTCH='+#39+OnOtchSags.Text+#39);
    ibquery2.SQL.Add(',OTONAFAM='+#39+OnaFamSags.Text+#39);
    ibquery2.SQL.Add(',OTONANAME='+#39+OnaNameSags.Text+#39);
    ibquery2.SQL.Add(',OTONAOTCH='+#39+OnaOtchSags.Text+#39);
    ibquery2.SQL.Add(',ONFAPPOSLE='+#39+OnNewFam.Text+#39);
    ibquery2.SQL.Add(',ONAFAMPOSLE='+#39+OnaNewFam.Text+#39);
    ibquery2.SQL.Add(',SAGS='+#39+IntToStr(Sags.ItemIndex+1)+#39);
    ibquery2.SQL.Add(',SDATE='+#39+FormatDateTime('dd.mm.yyyy',RegistrDate.date)+#39);
    ibquery2.SQL.Add(',STIME='+#39+FormatDateTime('hh:nn',RegistrTime.Time)+#39);

    if Telefon.Text<>'' then
      ibquery2.SQL.Add(', TELEFON='+#39+Telefon.text+#39);
    if OnaTelefon.Text<>'' then
      ibquery2.SQL.Add(', ONATELEFON='+#39+OnaTelefon.text+#39);
    if EMAIL.Text<>'' then
      ibquery2.SQL.Add(', EMAIL='+#39+EMAIL.text+#39);
    if RzRadioButton1.Checked then
      ibquery2.SQL.Add(',RASCHET='+#39+'0'+#39)
    else
      ibquery2.SQL.Add(',RASCHET='+#39+'1'+#39);
    NumId:=Integer(ceremoniy.Items.Objects[ceremoniy.ItemIndex]);
    ibquery2.SQL.Add(', CEREMON='+#39+IntToStr(NumID)+#39);
    ibquery2.SQL.Add(', SUMMA='+#39+Summa.Text+#39);
    if RzRadioButton2.Checked then
      begin
        ibquery2.SQL.Add(',DATAPOKV='+#39+FormatDateTime('dd.mm.yyyy',besnalDate.date)+#39);
        ibquery2.SQL.Add(', FAMILPOKV='+#39+FamilPoKv.Text+#39);
      end
    else
      ibquery2.SQL.Add(',NOMERKV='+#39+NOMERKv.Text+#39);
    ibquery2.SQL.Add(' where id='+#39+IntToStr(Form2.GlobalID)+#39);
  end;
  2:
    begin
      ibquery2.Close;
      ibquery2.SQL.Clear;
      ibquery2.SQL.Add('update zakaz set ');
      ibquery2.SQL.Add('OTONFAM='+#39+OnFamSags.Text+#39);
      ibquery2.SQL.Add(',OTONNAME='+#39+OnNamSags.Text+#39);
      ibquery2.SQL.Add(',OTONOTCH='+#39+OnOtchSags.Text+#39);
      ibquery2.SQL.Add(',OTONAFAM='+#39+OnaFamSags.Text+#39);
      ibquery2.SQL.Add(',OTONANAME='+#39+OnaNameSags.Text+#39);
      ibquery2.SQL.Add(',OTONAOTCH='+#39+OnaOtchSags.Text+#39);
      ibquery2.SQL.Add(',ONFAPPOSLE='+#39+OnNewFam.Text+#39);
      ibquery2.SQL.Add(',ONAFAMPOSLE='+#39+OnaNewFam.Text+#39);
      ibquery2.SQL.Add(',SAGS='+#39+IntToStr(Sags.ItemIndex+1)+#39);
      ibquery2.SQL.Add(',SDATE='+#39+FormatDateTime('dd.mm.yyyy',RegistrDate.date)+#39);
      ibquery2.SQL.Add(',STIME='+#39+FormatDateTime('hh:nn',RegistrTime.Time)+#39);
      if Telefon.Text<>'' then
        ibquery2.SQL.Add(', TELEFON='+#39+Telefon.text+#39);
      if OnaTelefon.Text<>'' then
        ibquery2.SQL.Add(', ONATELEFON='+#39+OnaTelefon.text+#39);
      if EMAIL.Text<>'' then
        ibquery2.SQL.Add(', EMAIL='+#39+EMAIL.text+#39);
      if RzRadioButton1.Checked then
        ibquery2.SQL.Add(',RASCHET='+#39+'0'+#39)
      else
        ibquery2.SQL.Add(',RASCHET='+#39+'1'+#39);
      NumId:=Integer(ceremoniy.Items.Objects[ceremoniy.ItemIndex]);
      ibquery2.SQL.Add(', CEREMON='+#39+IntToStr(NumID)+#39);
      ibquery2.SQL.Add(', SUMMA='+#39+Summa.Text+#39);
      if RzRadioButton2.Checked then
        begin
          ibquery2.SQL.Add(',DATAPOKV='+#39+FormatDateTime('dd.mm.yyyy',besnalDate.date)+#39);
          ibquery2.SQL.Add(', FAMILPOKV='+#39+FamilPoKv.Text+#39);
        end
      else
        ibquery2.SQL.Add(',NOMERKV='+#39+NOMERKv.Text+#39);
      NumId:=Integer(CbComment.Items.Objects[CbComment.ItemIndex]);
      ibquery2.SQL.Add(', DPSUMMA='+#39+DPSumma.Text+#39);
      ibquery2.SQL.Add(', DPNOMER='+#39+DPNumKvit.Text+#39);
      ibquery2.SQL.Add(', DPKOMMENT='+#39+IntToStr(NumID)+#39);
      ibquery2.SQL.Add(', DPDATE='+#39+FormatDateTime('dd.mm.yyyy',Now)+#39);
      ibquery2.SQL.Add(' where id='+#39+IntToStr(Form2.GlobalID)+#39);
    end;
  end;
  try
  ibquery2.ExecSQL;
  ibquery2.Transaction.Commit;
  except
    Application. MessageBox('Произошла ошибка при записи данных в БД!','Предупреждение',MB_OK);
  end;
end;


Произойти это могло только здесь, больше update к этой таблице нет. Не могу понять почему и как такое могло случится...
База  на firebird. Помогите разобраться.
PM MAIL   Вверх
Vas
Дата 2.5.2012, 07:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 830
Регистрация: 29.6.2005
Где: Stavropol region

Репутация: 23
Всего: 28



Делай
Код

ShowMessage(ibquery2.SQL.Text);
 
чтобы проверить, правильно ли условие в запросе выполняется и смотри. Никто твой код запускать у себя не собирается 


--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0778 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.