Exemple #1
0
//---------------------------------------------------------------------------
// Удаляє строку з таблиці.
//---------------------------------------------------------------------------
bool DeleteFromTable(AnsiString tname, int identity,bool message, AnsiString id_name )
{
   bool rezult = true;
   bool del = false;
   if(message)
   {
      if(MessageDlg("Ви дійсно хочете знищити запис?",
         mtConfirmation, TMsgDlgButtons() << mbYes << mbNo, 0) == mrYes)
      {
         del = true;
      }
   }else{
      del = true;
   }
   TIBQuery *q = CreateQuery(0,
       "delete from "+tname+" where "+((id_name == NULL)? ("ID_" + tname) : id_name)+" = "+IntToStr(identity)
   , false);
   try
   {
      if(del){
         q->ExecSQL();
         q->Transaction->Commit();
      }else{
         rezult = false;
      }
   }catch(...){
      rezult = false;
   }
   delete q;
   return rezult;
}
Exemple #2
0
//---------------------------------------------------------------------------
// Вставляє стоку в таблицю.
//---------------------------------------------------------------------------
int InsertIntoTable(AnsiString tname, TMyColumns args)
{
   int rezult = true;
   TMyColumns::iterator iter;
   AnsiString str = "insert into "+tname+" (";
   AnsiString str_p = " values (";
   unsigned int i=0;
   for(iter = args.begin(); iter != args.end(); ++iter)
   {
      str += iter->first + (i == args.size()-1?" ) ":", ");
      str_p += ":p_"+iter->first + (i == args.size()-1?" ) ":", ");
      i++;
   }
   str += str_p;
   TIBQuery *q = CreateQuery(0, str, false);
   for(iter = args.begin(); iter != args.end(); ++iter)
   {
      q->ParamByName("p_"+iter->first)->Value = iter->second;
      i++;
   }
   try{
      q->ExecSQL();
      q->Transaction->Commit();
//      q->SQL->Clear();
 //     q->SQL->Add( "select @@identity as 'id'" );
//      q->Open();
 //     rezult = q->FieldByName("id")->AsInteger;
   rezult = 0;
   }catch(...){
      rezult = false;
   }
   delete q;

   return rezult;
}
Exemple #3
0
//---------------------------------------------------------------------------
// Змінює дані строки в таблиці.
//---------------------------------------------------------------------------
bool UpdateTable(AnsiString tname, int identity, TMyColumns args, AnsiString id_name)
{
   bool rezult = true;
   TMyColumns::iterator iter;
   AnsiString str = "update "+tname+" set ";
   unsigned int i=0;
   for(iter = args.begin(); iter != args.end(); ++iter)
   {
      str += iter->first + "=:p_"+iter->first + (i == args.size()-1?" ":", ");
      i++;
   }
   str += " where "+((id_name == NULL)? ("ID_" + tname) : id_name)+" = :p_ID_"+tname;
   TIBQuery *q = CreateQuery(0, str, false);
   i=0;
   for(iter = args.begin(); iter != args.end(); ++iter)
   {
      q->ParamByName("p_"+iter->first)->Value = iter->second;
      i++;
   }
   try{
      if(identity > 0)
      {
         q->ParamByName("p_ID_"+tname)->Value = identity;
         q->ExecSQL();
         q->Transaction->Commit();
      }else{
         rezult = false;
      }
   }catch(...){
      rezult = false;
   }
   delete q;
   return rezult;
}