Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
mysql ve sqllite veri eşitleme
#1
selamlar kodumda bir yerde bir hata var ama çözemedik. ikinci else alanı işlem görmüyor 
procedure TForm7.urunEkle;
var
  useresponse2: Integer;
  productID, productName, productCode, barcode,guncelleme: string;
  price7, price1, price2, n11Price, hbPrice, trendyolSalePrice, idefixSalePrice, price6, n11_commission, hb_commission, eptt_commission, trendyol_commission: Double;
  hbProductUrl, n11ProductUrl, trendyolProductUrl: string;
  hb_price_min, hb_price_max, trendyol_price_min, trendyol_price_max, n11_price_min, n11_price_max: Double;
  sqlChanged: Boolean;
begin
  sqlChanged := False;

  useresponse2 := MessageDlg('Eşitleme yapmak istediğinizden emin misiniz? Bu işlem geri alınamaz.', mtConfirmation, [mbYes, mbNo], 0);
  if useresponse2 = mrYes then
  begin
    ZQSQL.SQL.Text := 'SELECT product_id FROM product_quantity WHERE quantity >= 1';
    ZQSQL.Open;

    ZQMySQLAd.SQL.Text := 'SELECT urun_id FROM veriler ';
    ZQMySQLAd.Open;
    ZQMySQLAd.First;

    ZMySQL.StartTransaction;
    try
      while not ZQMySQLAd.Eof do
      begin
        ZQSQLAd.SQL.Text := 'SELECT product_quantity.product_id, product_quantity.quantity, product.status ' +
                            'FROM product_quantity ' +
                            'LEFT JOIN product ON product_quantity.product_id = product.id ' +
                            'WHERE product_quantity.product_id = :productID AND product.status = 0';
        ZQSQLAd.ParamByName('productID').AsString := ZQMySQLAd.FieldByName('urun_id').AsString;
        ZQSQLAd.Open;
        if ZQSQLAd.Eof or (ZQSQLAd.FieldByName('quantity').AsInteger = 0) or (ZQSQLAd.FieldByName('status').AsInteger = 0) then
        begin
          zymysqfiyat.SQL.Text := 'DELETE FROM veriler WHERE urun_id = :productID';
          zymysqfiyat.ParamByName('productID').AsString := ZQMySQLAd.FieldByName('urun_id').AsString;
          zymysqfiyat.ExecSQL;
        end;
        ZQSQLAd.Close;
        ZQMySQLAd.Next;
      end;
      ZQMySQLAd.Close;

      ZQSQL.First;

      while not ZQSQL.Eof do
      begin
        productID := ZQSQL.FieldByName('product_id').AsString;

        ZQSQLAd.SQL.Text := 'SELECT productname, productcode, barcode, n11_commission, hb_commission, eptt_commission, trendyol_commission, ' +
                            'hb_product_url, n11_product_url, trendyol_product_url, status ' +
                            'FROM product WHERE id = :productID AND status > 0';
        ZQSQLAd.ParamByName('productID').AsString := productID;
        ZQSQLAd.Open;

        if not ZQSQLAd.Eof then
        begin
          productName := ZQSQLAd.FieldByName('productname').AsString;
          productCode := ZQSQLAd.FieldByName('productcode').AsString;
          barcode := ZQSQLAd.FieldByName('barcode').AsString;
          n11_commission := ZQSQLAd.FieldByName('n11_commission').AsFloat;
          hb_commission := ZQSQLAd.FieldByName('hb_commission').AsFloat;
          eptt_commission := ZQSQLAd.FieldByName('eptt_commission').AsFloat;
          trendyol_commission := ZQSQLAd.FieldByName('trendyol_commission').AsFloat;
          hbProductUrl := ZQSQLAd.FieldByName('hb_product_url').AsString;
          n11ProductUrl := ZQSQLAd.FieldByName('n11_product_url').AsString;
          trendyolProductUrl := ZQSQLAd.FieldByName('trendyol_product_url').AsString;

          zsqlfiyat.SQL.Text := 'SELECT price7, price1, price2, n11_price, hb_price, trendyol_saleprice, idefix_sale_price, price6 ' +
                                'FROM product_prices WHERE product_id = :productID';
          zsqlfiyat.ParamByName('productID').AsString := productID;
          zsqlfiyat.Open;

          if not zsqlfiyat.Eof then
          begin
            price1 := Round(zsqlfiyat.FieldByName('price1').AsFloat * 1.20);
            price2 := Round(zsqlfiyat.FieldByName('price2').AsFloat * 1.20);
            price6 := Round(zsqlfiyat.FieldByName('price6').AsFloat * 1.20);
            price7 := Round(zsqlfiyat.FieldByName('price7').AsFloat * 1.20);
             ZQMySQLAd.SQL.Text := 'SELECT smartlinkfiyati, n11komisyon, hepsiburadakomisyon, trendyolkomison, idefixkomisyon, maliyet, ' +
                                  'listefiyati, n11fiyati, hepsiburadafiyati, trendyolfiyati, idefixfiyati, ozelmaliyet, ' +
                                  'hb_product_url, n11_product_url, trendyol_product_url, ' +
                                  'hepsiburadarekabetalt, hepsiburadarekabetust, trednyolrekabetalt, trendyolrekabetust, n11rekabetalt, n11rekabetust, barcode, ' +
                                  'hbhc, tdhc, idehc, n11hc, tdminhc, tdmaxhc, hbminhc, hbmaxhc, n11minhc, n11maxhc,guncelleme ' +
                                  'FROM veriler WHERE urun_id = :productID';
            ZQMySQLAd.ParamByName('productID').AsString := productID;
            ZQMySQLAd.Open;
           ;
          if (ZQMySQLAd.FieldByName('n11komisyon').AsFloat <> n11_commission) or (ZQMySQLAd.FieldByName('smartlinkfiyati').AsFloat <> price2) then
              n11Price := Round((price2 / (1 - (n11_commission / 100))))
            else
              n11Price := zsqlfiyat.FieldByName('n11_price').AsFloat;
            if (ZQMySQLAd.FieldByName('hepsiburadakomisyon').AsFloat <> hb_commission) or (ZQMySQLAd.FieldByName('smartlinkfiyati').AsFloat <> price2) then
              hbPrice := Round((price2 / (1 - (hb_commission / 100))))
            else
              hbPrice := Round(zsqlfiyat.FieldByName('hb_price').AsFloat * 1.20);
            if (ZQMySQLAd.FieldByName('trendyolkomison').AsFloat <> trendyol_commission) or (ZQMySQLAd.FieldByName('smartlinkfiyati').AsFloat <> price2) then
              trendyolSalePrice := Round((price2 / (1 - (trendyol_commission / 100))))
            else
              trendyolSalePrice := Round(zsqlfiyat.FieldByName('trendyol_saleprice').AsFloat * 1.20);
            if (ZQMySQLAd.FieldByName('idefixkomisyon').AsFloat <> eptt_commission) or (ZQMySQLAd.FieldByName('smartlinkfiyati').AsFloat <> price2) then
              idefixSalePrice := Round((price2 / (1 - (eptt_commission / 100))))
            else
              idefixSalePrice := Round(zsqlfiyat.FieldByName('idefix_sale_price').AsFloat * 1.20);
            hb_price_min := hbPrice;
            hb_price_max := Round(hb_price_min * 1.20);
            trendyol_price_min := trendyolSalePrice;
            trendyol_price_max := Round(trendyol_price_min * 1.20);
            n11_price_min := n11Price;
            n11_price_max := Round(n11_price_min * 1.20);
            if ZQMySQLAd.FieldByName('guncelleme').AsString<>'' then
            begin
              guncelleme := ZQMySQLAd.FieldByName('guncelleme').AsString;
            end;


            if not ZQMySQLAd.Eof then
            begin

              // `price2` değişmişse tüm alanları güncelle
              if (ZQMySQLAd.FieldByName('smartlinkfiyati').AsFloat <> price2)
               then
              begin
                ShowMessage('sener'+(ZQMySQLAd.FieldByName('smartlinkfiyati').asstring)+productName);
              ShowMessage(floattostr(price2)+productName) ;
                zymysqfiyat.SQL.Clear;
                zymysqfiyat.SQL.Add('UPDATE veriler SET ');
                zymysqfiyat.SQL.Add('smartlinkfiyati = :price2, ');
                zymysqfiyat.SQL.Add('n11komisyon = :n11_commission, ');
                zymysqfiyat.SQL.Add('hepsiburadakomisyon = :hb_commission, ');
                zymysqfiyat.SQL.Add('trendyolkomison = :trendyol_commission, ');
                zymysqfiyat.SQL.Add('idefixkomisyon = :eptt_commission, ');
                zymysqfiyat.SQL.Add('maliyet = :price6, ');
                zymysqfiyat.SQL.Add('ozelmaliyet = :price7, ');
                zymysqfiyat.SQL.Add('listefiyati = :price1, ');
                zymysqfiyat.SQL.Add('hb_product_url = :hbProductUrl, ');
                zymysqfiyat.SQL.Add('n11_product_url = :n11ProductUrl, ');
                zymysqfiyat.SQL.Add('trendyol_product_url = :trendyolProductUrl, ');
                zymysqfiyat.SQL.Add('hepsiburadarekabetalt = :hb_price_min, ');
                zymysqfiyat.SQL.Add('hepsiburadarekabetust = :hb_price_max, ');
                zymysqfiyat.SQL.Add('trednyolrekabetalt = :trendyol_price_min, ');
                zymysqfiyat.SQL.Add('trendyolrekabetust = :trendyol_price_max, ');
                zymysqfiyat.SQL.Add('n11rekabetalt = :n11_price_min, ');
                zymysqfiyat.SQL.Add('n11rekabetust = :n11_price_max, ');
                zymysqfiyat.SQL.Add('barcode = :barcode, ');
                if guncelleme<>'' then
                begin
                zymysqfiyat.SQL.Add('guncelleme = :guncelleme, ');
                sqlChanged := True;
               end;
                // H olmayanlar için kontroller
 if (ZQMySQLAd.FieldByName('guncelleme').AsString <> 'H')then
  begin

   if (ZQMySQLAd.FieldByName('n11hc').AsString <> 'H')then
  begin
    zymysqfiyat.SQL.Add('n11fiyati = :n11Price, ');
    zymysqfiyat.ParamByName('n11Price').AsFloat := n11Price;

    sqlChanged := True;
  end;
 if (ZQMySQLAd.FieldByName('hbhc').AsString <> 'H')then
  begin
    zymysqfiyat.SQL.Add('hepsiburadafiyati = :hbPrice, ');
    zymysqfiyat.ParamByName('hbPrice').AsFloat := hbPrice;
     sqlChanged := True;
  end;
   if (ZQMySQLAd.FieldByName('tdhc').AsString <> 'H')then
  begin
    zymysqfiyat.SQL.Add('trendyolfiyati = :trendyolSalePrice, ');
    zymysqfiyat.ParamByName('trendyolSalePrice').AsFloat := trendyolSalePrice;
    sqlChanged := True;
  end;
    if (ZQMySQLAd.FieldByName('idehc').AsString <> 'H')then
  begin
    zymysqfiyat.SQL.Add('idefixfiyati = :idefixSalePrice, ');
    zymysqfiyat.ParamByName('idefixSalePrice').AsFloat := idefixSalePrice;
    sqlChanged := True;
  end;
 if (ZQMySQLAd.FieldByName('tdminhc').AsString <> 'H')then
  begin
    zymysqfiyat.SQL.Add('trednyolrekabetalt = :trendyol_price_min, ');
    zymysqfiyat.ParamByName('trendyol_price_min').AsFloat := trendyol_price_min;
    sqlChanged := True;
  end;
 if (ZQMySQLAd.FieldByName('tdmaxhx').AsString <> 'H')then
  begin
    zymysqfiyat.SQL.Add('trendyolrekabetust = :trendyol_price_max, ');
    zymysqfiyat.ParamByName('trendyol_price_max').AsFloat := trendyol_price_max;
    sqlChanged := True;
  end;
     if (ZQMySQLAd.FieldByName('hbminhx').AsString <> 'H')then
  begin
    zymysqfiyat.SQL.Add('hepsiburadarekabetalt = :hb_price_min, ');
    zymysqfiyat.ParamByName('hb_price_min').AsFloat := hb_price_min;
    sqlChanged := True;
  end;
 if (ZQMySQLAd.FieldByName('hbmaxhc').AsString <> 'H')then
  begin
    zymysqfiyat.SQL.Add('hepsiburadarekabetust = :hb_price_max, ');
    zymysqfiyat.ParamByName('hb_price_max').AsFloat := hb_price_max;
    sqlChanged := True;
  end;
  if (ZQMySQLAd.FieldByName('n11minhc').AsString <> 'H')then
  begin
    zymysqfiyat.SQL.Add('n11rekabetalt = :n11_price_min, ');
    zymysqfiyat.ParamByName('n11_price_min').AsFloat := n11_price_min;
    sqlChanged := True;
  end;
  if (ZQMySQLAd.FieldByName('n11max').AsString <> 'H')then
  begin
    zymysqfiyat.SQL.Add('n11rekabetust = :n11_price_max, ');
    zymysqfiyat.ParamByName('n11_price_max').AsFloat := n11_price_max;
    sqlChanged := True;
  end;
  end;          // Son virgülü kaldır
                if zymysqfiyat.SQL[zymysqfiyat.SQL.Count - 1].EndsWith(', ') then
                  zymysqfiyat.SQL[zymysqfiyat.SQL.Count - 1] := zymysqfiyat.SQL[zymysqfiyat.SQL.Count - 1].Substring(0, zymysqfiyat.SQL[zymysqfiyat.SQL.Count - 1].Length - 2);

//                zymysqfiyat.SQL.Add(' WHERE urun_id = :productID');

                // Parametrelerin atanması
                zymysqfiyat.ParamByName('price2').AsFloat := price2;
                zymysqfiyat.ParamByName('n11_commission').AsFloat := n11_commission;
                zymysqfiyat.ParamByName('hb_commission').AsFloat := hb_commission;
                zymysqfiyat.ParamByName('trendyol_commission').AsFloat := trendyol_commission;
                zymysqfiyat.ParamByName('eptt_commission').AsFloat := eptt_commission;
                zymysqfiyat.ParamByName('price6').AsFloat := price6;
                zymysqfiyat.ParamByName('price7').AsFloat := price7;
                zymysqfiyat.ParamByName('price1').AsFloat := price1;
                zymysqfiyat.ParamByName('hbProductUrl').AsString := hbProductUrl;
                zymysqfiyat.ParamByName('n11ProductUrl').AsString := n11ProductUrl;
                zymysqfiyat.ParamByName('trendyolProductUrl').AsString := trendyolProductUrl;
                zymysqfiyat.ParamByName('hb_price_min').AsFloat := hb_price_min;
                zymysqfiyat.ParamByName('hb_price_max').AsFloat := hb_price_max;
                zymysqfiyat.ParamByName('trendyol_price_min').AsFloat := trendyol_price_min;
                zymysqfiyat.ParamByName('trendyol_price_max').AsFloat := trendyol_price_max;
                zymysqfiyat.ParamByName('n11_price_min').AsFloat := n11_price_min;
                zymysqfiyat.ParamByName('n11_price_max').AsFloat := n11_price_max;
                zymysqfiyat.ParamByName('barcode').AsString := barcode;
                if guncelleme<>'' then
                begin
                zymysqfiyat.ParamByName('guncelleme').AsString := guncelleme;
                 end;
  if sqlChanged then
  begin
    zymysqfiyat.SQL.Add(' WHERE urun_id = :productID');
    zymysqfiyat.ParamByName('productID').AsString := productID;
    zymysqfiyat.ExecSQL;
  end;

              end
              //eğer komisyonlar değişmiş ise
              else if (ZQMySQLAd.FieldByName('n11komisyon').AsFloat <> n11_commission)
              or  (ZQMySQLAd.FieldByName('hepsiburadakomisyon').AsFloat <> hb_commission) or
              (ZQMySQLAd.FieldByName('trendyolkomison').AsFloat <> trendyol_commission) or
              (ZQMySQLAd.FieldByName('idefixkomisyon').AsFloat <> eptt_commission)
               then
              begin
                ShowMessage('sener'+(ZQMySQLAd.FieldByName('smartlinkfiyati').asstring)+productName);
              ShowMessage(floattostr(price2)+productName) ;
                zymysqfiyat.SQL.Clear;
                zymysqfiyat.SQL.Add('UPDATE veriler SET ');
                zymysqfiyat.SQL.Add('smartlinkfiyati = :price2, ');
                zymysqfiyat.SQL.Add('n11komisyon = :n11_commission, ');
                zymysqfiyat.SQL.Add('hepsiburadakomisyon = :hb_commission, ');
                zymysqfiyat.SQL.Add('trendyolkomison = :trendyol_commission, ');
                zymysqfiyat.SQL.Add('idefixkomisyon = :eptt_commission, ');
                zymysqfiyat.SQL.Add('maliyet = :price6, ');
                zymysqfiyat.SQL.Add('ozelmaliyet = :price7, ');
                zymysqfiyat.SQL.Add('listefiyati = :price1, ');
                zymysqfiyat.SQL.Add('hb_product_url = :hbProductUrl, ');
                zymysqfiyat.SQL.Add('n11_product_url = :n11ProductUrl, ');
                zymysqfiyat.SQL.Add('trendyol_product_url = :trendyolProductUrl, ');
                zymysqfiyat.SQL.Add('hepsiburadarekabetalt = :hb_price_min, ');
                zymysqfiyat.SQL.Add('hepsiburadarekabetust = :hb_price_max, ');
                zymysqfiyat.SQL.Add('trednyolrekabetalt = :trendyol_price_min, ');
                zymysqfiyat.SQL.Add('trendyolrekabetust = :trendyol_price_max, ');
                zymysqfiyat.SQL.Add('n11rekabetalt = :n11_price_min, ');
                zymysqfiyat.SQL.Add('n11rekabetust = :n11_price_max, ');
                zymysqfiyat.SQL.Add('barcode = :barcode, ');

    zymysqfiyat.SQL.Add('n11fiyati = :n11Price, ');
    zymysqfiyat.ParamByName('n11Price').AsFloat := n11Price;
    zymysqfiyat.SQL.Add('hepsiburadafiyati = :hbPrice, ');
    zymysqfiyat.ParamByName('hbPrice').AsFloat := hbPrice;
    zymysqfiyat.SQL.Add('trendyolfiyati = :trendyolSalePrice, ');
    zymysqfiyat.ParamByName('trendyolSalePrice').AsFloat := trendyolSalePrice;
    zymysqfiyat.SQL.Add('idefixfiyati = :idefixSalePrice, ');
    zymysqfiyat.ParamByName('idefixSalePrice').AsFloat := idefixSalePrice;
    zymysqfiyat.SQL.Add('trednyolrekabetalt = :trendyol_price_min, ');
    zymysqfiyat.ParamByName('trendyol_price_min').AsFloat := trendyol_price_min;
    zymysqfiyat.SQL.Add('trendyolrekabetust = :trendyol_price_max, ');
    zymysqfiyat.ParamByName('trendyol_price_max').AsFloat := trendyol_price_max;
    zymysqfiyat.SQL.Add('hepsiburadarekabetalt = :hb_price_min, ');
    zymysqfiyat.ParamByName('hb_price_min').AsFloat := hb_price_min;
    zymysqfiyat.SQL.Add('hepsiburadarekabetust = :hb_price_max, ');
    zymysqfiyat.ParamByName('hb_price_max').AsFloat := hb_price_max;
    zymysqfiyat.SQL.Add('n11rekabetalt = :n11_price_min, ');
    zymysqfiyat.ParamByName('n11_price_min').AsFloat := n11_price_min;
    zymysqfiyat.SQL.Add('n11rekabetust = :n11_price_max, ');
    zymysqfiyat.ParamByName('n11_price_max').AsFloat := n11_price_max;

               // Son virgülü kaldır
                if zymysqfiyat.SQL[zymysqfiyat.SQL.Count - 1].EndsWith(', ') then
                  zymysqfiyat.SQL[zymysqfiyat.SQL.Count - 1] := zymysqfiyat.SQL[zymysqfiyat.SQL.Count - 1].Substring(0, zymysqfiyat.SQL[zymysqfiyat.SQL.Count - 1].Length - 2);

//                zymysqfiyat.SQL.Add(' WHERE urun_id = :productID');

                // Parametrelerin atanması
                zymysqfiyat.ParamByName('price2').AsFloat := price2;
                zymysqfiyat.ParamByName('n11_commission').AsFloat := n11_commission;
                zymysqfiyat.ParamByName('hb_commission').AsFloat := hb_commission;
                zymysqfiyat.ParamByName('trendyol_commission').AsFloat := trendyol_commission;
                zymysqfiyat.ParamByName('eptt_commission').AsFloat := eptt_commission;
                zymysqfiyat.ParamByName('price6').AsFloat := price6;
                zymysqfiyat.ParamByName('price7').AsFloat := price7;
                zymysqfiyat.ParamByName('price1').AsFloat := price1;
                zymysqfiyat.ParamByName('hbProductUrl').AsString := hbProductUrl;
                zymysqfiyat.ParamByName('n11ProductUrl').AsString := n11ProductUrl;
                zymysqfiyat.ParamByName('trendyolProductUrl').AsString := trendyolProductUrl;
                zymysqfiyat.ParamByName('hb_price_min').AsFloat := hb_price_min;
                zymysqfiyat.ParamByName('hb_price_max').AsFloat := hb_price_max;
                zymysqfiyat.ParamByName('trendyol_price_min').AsFloat := trendyol_price_min;
                zymysqfiyat.ParamByName('trendyol_price_max').AsFloat := trendyol_price_max;
                zymysqfiyat.ParamByName('n11_price_min').AsFloat := n11_price_min;
                zymysqfiyat.ParamByName('n11_price_max').AsFloat := n11_price_max;
                zymysqfiyat.ParamByName('barcode').AsString := barcode;




    zymysqfiyat.SQL.Add(' WHERE urun_id = :productID');
    zymysqfiyat.ParamByName('productID').AsString := productID;
     zymysqfiyat.ExecSQL;

              end


              else burası çalışmıyor
              begin
              ShowMessage('Product ID: ' + productID + ' | Güncelleme: ' + ZQMySQLAd.FieldByName('guncelleme').AsString);

               zymysqfiyat.SQL.Clear;
                zymysqfiyat.SQL.Add('UPDATE veriler SET ');



            if ZQMySQLAd.FieldByName('maliyet').AsFloat <> price6 then
            begin
            zymysqfiyat.SQL.Add('maliyet = :price6, ');
            zymysqfiyat.ParamByName('price6').AsFloat := price6;
            sqlChanged := True;
  end;
  if ZQMySQLAd.FieldByName('ozelmaliyet').AsFloat <> price7 then
  begin
    zymysqfiyat.SQL.Add('ozelmaliyet = :price7, ');
    zymysqfiyat.ParamByName('price7').AsFloat := price7;
    sqlChanged := True;
  end;

  if ZQMySQLAd.FieldByName('hb_product_url').AsString <> hbProductUrl then
  begin
    zymysqfiyat.SQL.Add('hb_product_url = :hbProductUrl, ');
    zymysqfiyat.ParamByName('hbProductUrl').AsString := hbProductUrl;
    sqlChanged := True;
  end;

  if ZQMySQLAd.FieldByName('n11_product_url').AsString <> n11ProductUrl then
  begin
    zymysqfiyat.SQL.Add('n11_product_url = :n11ProductUrl, ');
    zymysqfiyat.ParamByName('n11ProductUrl').AsString := n11ProductUrl;
    sqlChanged := True;
  end;

 if ZQMySQLAd.FieldByName('trendyol_product_url').AsString <> trendyolProductUrl then
  begin
    zymysqfiyat.SQL.Add('trendyol_product_url = :trendyolProductUrl, ');
    zymysqfiyat.ParamByName('trendyolProductUrl').AsString := trendyolProductUrl;
    sqlChanged := True;
  end;
  if ZQMySQLAd.FieldByName('n11komisyon').AsFloat <> n11_commission then
  begin
    zymysqfiyat.SQL.Add('n11komisyon = :n11_commission, ');
    zymysqfiyat.ParamByName('n11_commission').AsFloat := n11_commission;
    sqlChanged := True;
  end;
 if ZQMySQLAd.FieldByName('hepsiburadakomisyon').AsFloat <> hb_commission then
  begin
    zymysqfiyat.SQL.Add('hepsiburadakomisyon = :hb_commission, ');
    zymysqfiyat.ParamByName('hb_commission').AsFloat := hb_commission;
    sqlChanged := True;
  end;

  if ZQMySQLAd.FieldByName('trendyolkomison').AsFloat <> trendyol_commission then
  begin
    zymysqfiyat.SQL.Add('trendyolkomison = :trendyol_commission, ');
    zymysqfiyat.ParamByName('trendyol_commission').AsFloat := trendyol_commission;
    sqlChanged := True;
  end;
  if ZQMySQLAd.FieldByName('idefixkomisyon').AsFloat <> eptt_commission then
  begin
    zymysqfiyat.SQL.Add('idefixkomisyon = :eptt_commission, ');
    zymysqfiyat.ParamByName('eptt_commission').AsFloat := eptt_commission;
    sqlChanged := True;
  end;


   if ZQMySQLAd.FieldByName('n11fiyati').AsFloat <> n11Price then
  begin
   ShowMessage(floattostr(n11Price));

     if ZQMySQLAd.FieldByName('n11hc').AsString <> 'H' then
  begin
    zymysqfiyat.SQL.Add('n11hc = :n11hc, ');
    zymysqfiyat.SQL.Add('n11minhc = :n11minhc, ');
    zymysqfiyat.SQL.Add('n11maxhc = :n11maxhc, ');
        zymysqfiyat.ParamByName('n11hc').AsString := 'H';
    zymysqfiyat.ParamByName('n11minhc').AsString := 'H';
    zymysqfiyat.ParamByName('n11maxhc').AsString := 'H';

      end;
      zymysqfiyat.SQL.Add('n11fiyati = :n11Price, ');
     zymysqfiyat.ParamByName('n11Price').AsFloat := n11Price;
    sqlChanged := True;
  end;
if ZQMySQLAd.FieldByName('hepsiburadafiyati').AsFloat <> hbPrice then
begin
  zymysqfiyat.SQL.Add('hepsiburadafiyati = :hbPrice, ');
  if ZQMySQLAd.FieldByName('hbhc').AsString <> 'H' then
  begin
    zymysqfiyat.SQL.Add('hbhc = :hbhc, ');
    zymysqfiyat.SQL.Add('hbminhc = :hbminhc, ');
    zymysqfiyat.SQL.Add('hbmaxhc = :hbmaxhc, ');
    zymysqfiyat.ParamByName('hbhc').AsString := 'H';
    zymysqfiyat.ParamByName('hbminhc').AsString := 'H';
    zymysqfiyat.ParamByName('hbmaxhc').AsString := 'H';
  end;
  zymysqfiyat.ParamByName('hbPrice').AsFloat := hbPrice;
  sqlChanged := True;
end;

   if ZQMySQLAd.FieldByName('trendyolfiyati').AsFloat <> trendyolSalePrice then
  begin
    zymysqfiyat.SQL.Add('trendyolfiyati = :trendyolSalePrice, ');
      if ZQMySQLAd.FieldByName('hbhc').AsString <> 'H' then
  begin
    zymysqfiyat.SQL.Add('tdhc = :tdhc, ');
    zymysqfiyat.SQL.Add('tdminhc = :tdminhc, ');
    zymysqfiyat.SQL.Add('tdmaxhc = :tdmaxhc, ');

    zymysqfiyat.ParamByName('tdhc').AsString := 'H';
    zymysqfiyat.ParamByName('tdminhc').AsString := 'H';
    zymysqfiyat.ParamByName('tdmaxhc').AsString := 'H';
  end;
      zymysqfiyat.ParamByName('trendyolSalePrice').AsFloat := trendyolSalePrice;
    sqlChanged := True;
  end;
          if ZQMySQLAd.FieldByName('idefixfiyati').AsFloat <> idefixSalePrice then
  begin
    zymysqfiyat.SQL.Add('idefixfiyati = :idefixSalePrice, ');
     if ZQMySQLAd.FieldByName('hbhc').AsString <> 'H' then
  begin
    zymysqfiyat.SQL.Add('idehc = :idehc, ');

    zymysqfiyat.ParamByName('idehc').AsString := 'H';
  end;
      zymysqfiyat.ParamByName('idefixSalePrice').AsFloat := idefixSalePrice;
    sqlChanged := True;
  end;

    if ZQMySQLAd.FieldByName('trednyolrekabetalt').AsFloat <> trendyol_price_min then
  begin
    zymysqfiyat.SQL.Add('trednyolrekabetalt = :trendyol_price_min, ');
    zymysqfiyat.ParamByName('trendyol_price_min').AsFloat := trendyol_price_min;
    sqlChanged := True;
  end;

  if ZQMySQLAd.FieldByName('trendyolrekabetust').AsFloat <> trendyol_price_max then
  begin
    zymysqfiyat.SQL.Add('trendyolrekabetust = :trendyol_price_max, ');
    zymysqfiyat.ParamByName('trendyol_price_max').AsFloat := trendyol_price_max;
    sqlChanged := True;
  end;

  if ZQMySQLAd.FieldByName('hepsiburadarekabetalt').AsFloat <> hb_price_min then
  begin
    zymysqfiyat.SQL.Add('hepsiburadarekabetalt = :hb_price_min, ');
    zymysqfiyat.ParamByName('hb_price_min').AsFloat := hb_price_min;
    sqlChanged := True;
  end;

  if ZQMySQLAd.FieldByName('hepsiburadarekabetust').AsFloat <> hb_price_max then
  begin
    zymysqfiyat.SQL.Add('hepsiburadarekabetust = :hb_price_max, ');
    zymysqfiyat.ParamByName('hb_price_max').AsFloat := hb_price_max;
    sqlChanged := True;
  end;
  if ZQMySQLAd.FieldByName('n11rekabetalt').AsFloat <> n11_price_min then
  begin
    zymysqfiyat.SQL.Add('n11rekabetalt = :n11_price_min, ');
    zymysqfiyat.ParamByName('n11_price_min').AsFloat := n11_price_min;
    sqlChanged := True;
  end;

  if ZQMySQLAd.FieldByName('n11rekabetust').AsFloat <> n11_price_max then
  begin
    zymysqfiyat.SQL.Add('n11rekabetust = :n11_price_max, ');
    zymysqfiyat.ParamByName('n11_price_max').AsFloat := n11_price_max;
    sqlChanged := True;
  end;

                // Son virgülü kaldır
                if zymysqfiyat.SQL[zymysqfiyat.SQL.Count - 1].EndsWith(', ') then
                  zymysqfiyat.SQL[zymysqfiyat.SQL.Count - 1] := zymysqfiyat.SQL[zymysqfiyat.SQL.Count - 1].Substring(0, zymysqfiyat.SQL[zymysqfiyat.SQL.Count - 1].Length - 2);

if sqlChanged then
  begin

    zymysqfiyat.SQL.Add(' WHERE urun_id = :productID');
    zymysqfiyat.ParamByName('productID').AsString := productID;
    zymysqfiyat.ExecSQL;
  end;





           end
            else
            begin
              zymysqfiyat.SQL.Clear;
              zymysqfiyat.SQL.Add('INSERT INTO veriler (urun_id, smartlinkfiyati, listefiyati, n11fiyati, hepsiburadafiyati, trendyolfiyati, idefixfiyati,');
              zymysqfiyat.SQL.Add('urun_adi, urun_kodu, n11komisyon, hepsiburadakomisyon, trendyolkomison, idefixkomisyon, maliyet, ozelmaliyet, hb_product_url, n11_product_url, trendyol_product_url, ' +
                                  'hepsiburadarekabetalt, hepsiburadarekabetust, trednyolrekabetalt, trendyolrekabetust, n11rekabetalt, n11rekabetust, barcode)');
              zymysqfiyat.SQL.Add('VALUES (:productID, :price2, :price1, :n11Price, :hbPrice, :trendyolSalePrice, :idefixSalePrice, :productName, :productCode,');
              zymysqfiyat.SQL.Add(':n11_commission, :hb_commission, :trendyol_commission, :eptt_commission, :price6, :price7, :hbProductUrl, :n11ProductUrl, :trendyolProductUrl, ' +
                                  ':hb_price_min, :hb_price_max, :trendyol_price_min, :trendyol_price_max, :n11_price_min, :n11_price_max, :barcode)');
              zymysqfiyat.ParamByName('productID').AsString := productID;
              zymysqfiyat.ParamByName('price2').AsFloat := price2;
              zymysqfiyat.ParamByName('price1').AsFloat := price1;
              zymysqfiyat.ParamByName('n11Price').AsFloat := n11Price;
              zymysqfiyat.ParamByName('hbPrice').AsFloat := hbPrice;
              zymysqfiyat.ParamByName('trendyolSalePrice').AsFloat := trendyolSalePrice;
              zymysqfiyat.ParamByName('idefixSalePrice').AsFloat := idefixSalePrice;
              zymysqfiyat.ParamByName('productName').AsString := productName;
              zymysqfiyat.ParamByName('productCode').AsString := productCode;
              zymysqfiyat.ParamByName('n11_commission').AsFloat := n11_commission;
              zymysqfiyat.ParamByName('hb_commission').AsFloat := hb_commission;
              zymysqfiyat.ParamByName('trendyol_commission').AsFloat := trendyol_commission;
              zymysqfiyat.ParamByName('eptt_commission').AsFloat := eptt_commission;
              zymysqfiyat.ParamByName('price6').AsFloat := price6;
              zymysqfiyat.ParamByName('price7').AsFloat := price7;
              zymysqfiyat.ParamByName('hbProductUrl').AsString := hbProductUrl;
              zymysqfiyat.ParamByName('n11ProductUrl').AsString := n11ProductUrl;
              zymysqfiyat.ParamByName('trendyolProductUrl').AsString := trendyolProductUrl;
              zymysqfiyat.ParamByName('hb_price_min').AsFloat := hb_price_min;
              zymysqfiyat.ParamByName('hb_price_max').AsFloat := hb_price_max;
              zymysqfiyat.ParamByName('trendyol_price_min').AsFloat := trendyol_price_min;
              zymysqfiyat.ParamByName('trendyol_price_max').AsFloat := trendyol_price_max;
              zymysqfiyat.ParamByName('n11_price_min').AsFloat := n11_price_min;
              zymysqfiyat.ParamByName('n11_price_max').AsFloat := n11_price_max;
              zymysqfiyat.ParamByName('barcode').AsString := barcode;
              zymysqfiyat.ExecSQL;
            end;

          end;

          zsqlfiyat.Close;
        end;

        ZQSQLAd.Close;
        ZQMySQLAd.Close;
        ZQSQL.Next;
      end;

      ZQSQL.Close;
      ZMySQL.Commit;
    except
      on E: Exception do
      begin
        ZMySQL.Rollback;
        ShowMessage('Hata: ' + E.Message);
      end;
    end;

    ZQuery1.Close;
    ZQuery1.Open;
    UpdateRecordCountLabel;
    ShowMessage('Eşitleme Tamamlandı');
  end;
end;

end;
end;
Wave 呼叫
Cevapla
#2
(13-07-2024, Saat: 09:52)senerelmas Adlı Kullanıcıdan Alıntı: selamlar kodumda bir yerde bir hata var ama çözemedik. ikinci else alanı işlem görmüyor 
procedure TForm7.urunEkle;
var
  useresponse2: Integer;
  productID, productName, productCode, barcode,guncelleme: string;
  price7, price1, price2, n11Price, hbPrice, trendyolSalePrice, idefixSalePrice, price6, n11_commission, hb_commission, eptt_commission, trendyol_commission: Double;
  hbProductUrl, n11ProductUrl, trendyolProductUrl: string;
  hb_price_min, hb_price_max, trendyol_price_min, trendyol_price_max, n11_price_min, n11_price_max: Double;
  sqlChanged: Boolean;
begin
  sqlChanged := False;

  useresponse2 := MessageDlg('Eşitleme yapmak istediğinizden emin misiniz? Bu işlem geri alınamaz.', mtConfirmation, [mbYes, mbNo], 0);
  if useresponse2 = mrYes then
  begin
    ZQSQL.SQL.Text := 'SELECT product_id FROM product_quantity WHERE quantity >= 1';
    ZQSQL.Open;

    ZQMySQLAd.SQL.Text := 'SELECT urun_id FROM veriler ';
    ZQMySQLAd.Open;
    ZQMySQLAd.First;

    ZMySQL.StartTransaction;
    try
      while not ZQMySQLAd.Eof do
      begin
        ZQSQLAd.SQL.Text := 'SELECT product_quantity.product_id, product_quantity.quantity, product.status ' +
                            'FROM product_quantity ' +
                            'LEFT JOIN product ON product_quantity.product_id = product.id ' +
                            'WHERE product_quantity.product_id = :productID AND product.status = 0';
        ZQSQLAd.ParamByName('productID').AsString := ZQMySQLAd.FieldByName('urun_id').AsString;
        ZQSQLAd.Open;
        if ZQSQLAd.Eof or (ZQSQLAd.FieldByName('quantity').AsInteger = 0) or (ZQSQLAd.FieldByName('status').AsInteger = 0) then
        begin
          zymysqfiyat.SQL.Text := 'DELETE FROM veriler WHERE urun_id = :productID';
          zymysqfiyat.ParamByName('productID').AsString := ZQMySQLAd.FieldByName('urun_id').AsString;
          zymysqfiyat.ExecSQL;
        end;
        ZQSQLAd.Close;
        ZQMySQLAd.Next;
      end;
      ZQMySQLAd.Close;

      ZQSQL.First;

      while not ZQSQL.Eof do
      begin
        productID := ZQSQL.FieldByName('product_id').AsString;

        ZQSQLAd.SQL.Text := 'SELECT productname, productcode, barcode, n11_commission, hb_commission, eptt_commission, trendyol_commission, ' +
                            'hb_product_url, n11_product_url, trendyol_product_url, status ' +
                            'FROM product WHERE id = :productID AND status > 0';
        ZQSQLAd.ParamByName('productID').AsString := productID;
        ZQSQLAd.Open;

        if not ZQSQLAd.Eof then
        begin
          productName := ZQSQLAd.FieldByName('productname').AsString;
          productCode := ZQSQLAd.FieldByName('productcode').AsString;
          barcode := ZQSQLAd.FieldByName('barcode').AsString;
          n11_commission := ZQSQLAd.FieldByName('n11_commission').AsFloat;
          hb_commission := ZQSQLAd.FieldByName('hb_commission').AsFloat;
          eptt_commission := ZQSQLAd.FieldByName('eptt_commission').AsFloat;
          trendyol_commission := ZQSQLAd.FieldByName('trendyol_commission').AsFloat;
          hbProductUrl := ZQSQLAd.FieldByName('hb_product_url').AsString;
          n11ProductUrl := ZQSQLAd.FieldByName('n11_product_url').AsString;
          trendyolProductUrl := ZQSQLAd.FieldByName('trendyol_product_url').AsString;

          zsqlfiyat.SQL.Text := 'SELECT price7, price1, price2, n11_price, hb_price, trendyol_saleprice, idefix_sale_price, price6 ' +
                                'FROM product_prices WHERE product_id = :productID';
          zsqlfiyat.ParamByName('productID').AsString := productID;
          zsqlfiyat.Open;

          if not zsqlfiyat.Eof then
          begin
            price1 := Round(zsqlfiyat.FieldByName('price1').AsFloat * 1.20);
            price2 := Round(zsqlfiyat.FieldByName('price2').AsFloat * 1.20);
            price6 := Round(zsqlfiyat.FieldByName('price6').AsFloat * 1.20);
            price7 := Round(zsqlfiyat.FieldByName('price7').AsFloat * 1.20);
             ZQMySQLAd.SQL.Text := 'SELECT smartlinkfiyati, n11komisyon, hepsiburadakomisyon, trendyolkomison, idefixkomisyon, maliyet, ' +
                                  'listefiyati, n11fiyati, hepsiburadafiyati, trendyolfiyati, idefixfiyati, ozelmaliyet, ' +
                                  'hb_product_url, n11_product_url, trendyol_product_url, ' +
                                  'hepsiburadarekabetalt, hepsiburadarekabetust, trednyolrekabetalt, trendyolrekabetust, n11rekabetalt, n11rekabetust, barcode, ' +
                                  'hbhc, tdhc, idehc, n11hc, tdminhc, tdmaxhc, hbminhc, hbmaxhc, n11minhc, n11maxhc,guncelleme ' +
                                  'FROM veriler WHERE urun_id = :productID';
            ZQMySQLAd.ParamByName('productID').AsString := productID;
            ZQMySQLAd.Open;
           ;
          if (ZQMySQLAd.FieldByName('n11komisyon').AsFloat <> n11_commission) or (ZQMySQLAd.FieldByName('smartlinkfiyati').AsFloat <> price2) then
              n11Price := Round((price2 / (1 - (n11_commission / 100))))
            else
              n11Price := zsqlfiyat.FieldByName('n11_price').AsFloat;
            if (ZQMySQLAd.FieldByName('hepsiburadakomisyon').AsFloat <> hb_commission) or (ZQMySQLAd.FieldByName('smartlinkfiyati').AsFloat <> price2) then
              hbPrice := Round((price2 / (1 - (hb_commission / 100))))
            else
              hbPrice := Round(zsqlfiyat.FieldByName('hb_price').AsFloat * 1.20);
            if (ZQMySQLAd.FieldByName('trendyolkomison').AsFloat <> trendyol_commission) or (ZQMySQLAd.FieldByName('smartlinkfiyati').AsFloat <> price2) then
              trendyolSalePrice := Round((price2 / (1 - (trendyol_commission / 100))))
            else
              trendyolSalePrice := Round(zsqlfiyat.FieldByName('trendyol_saleprice').AsFloat * 1.20);
            if (ZQMySQLAd.FieldByName('idefixkomisyon').AsFloat <> eptt_commission) or (ZQMySQLAd.FieldByName('smartlinkfiyati').AsFloat <> price2) then
              idefixSalePrice := Round((price2 / (1 - (eptt_commission / 100))))
            else
              idefixSalePrice := Round(zsqlfiyat.FieldByName('idefix_sale_price').AsFloat * 1.20);
            hb_price_min := hbPrice;
            hb_price_max := Round(hb_price_min * 1.20);
            trendyol_price_min := trendyolSalePrice;
            trendyol_price_max := Round(trendyol_price_min * 1.20);
            n11_price_min := n11Price;
            n11_price_max := Round(n11_price_min * 1.20);
            if ZQMySQLAd.FieldByName('guncelleme').AsString<>'' then
            begin
              guncelleme := ZQMySQLAd.FieldByName('guncelleme').AsString;
            end;


            if not ZQMySQLAd.Eof then
            begin

              // `price2` değişmişse tüm alanları güncelle
              if (ZQMySQLAd.FieldByName('smartlinkfiyati').AsFloat <> price2)
               then
              begin
                ShowMessage('sener'+(ZQMySQLAd.FieldByName('smartlinkfiyati').asstring)+productName);
              ShowMessage(floattostr(price2)+productName) ;
                zymysqfiyat.SQL.Clear;
                zymysqfiyat.SQL.Add('UPDATE veriler SET ');
                zymysqfiyat.SQL.Add('smartlinkfiyati = :price2, ');
                zymysqfiyat.SQL.Add('n11komisyon = :n11_commission, ');
                zymysqfiyat.SQL.Add('hepsiburadakomisyon = :hb_commission, ');
                zymysqfiyat.SQL.Add('trendyolkomison = :trendyol_commission, ');
                zymysqfiyat.SQL.Add('idefixkomisyon = :eptt_commission, ');
                zymysqfiyat.SQL.Add('maliyet = :price6, ');
                zymysqfiyat.SQL.Add('ozelmaliyet = :price7, ');
                zymysqfiyat.SQL.Add('listefiyati = :price1, ');
                zymysqfiyat.SQL.Add('hb_product_url = :hbProductUrl, ');
                zymysqfiyat.SQL.Add('n11_product_url = :n11ProductUrl, ');
                zymysqfiyat.SQL.Add('trendyol_product_url = :trendyolProductUrl, ');
                zymysqfiyat.SQL.Add('hepsiburadarekabetalt = :hb_price_min, ');
                zymysqfiyat.SQL.Add('hepsiburadarekabetust = :hb_price_max, ');
                zymysqfiyat.SQL.Add('trednyolrekabetalt = :trendyol_price_min, ');
                zymysqfiyat.SQL.Add('trendyolrekabetust = :trendyol_price_max, ');
                zymysqfiyat.SQL.Add('n11rekabetalt = :n11_price_min, ');
                zymysqfiyat.SQL.Add('n11rekabetust = :n11_price_max, ');
                zymysqfiyat.SQL.Add('barcode = :barcode, ');
                if guncelleme<>'' then
                begin
                zymysqfiyat.SQL.Add('guncelleme = :guncelleme, ');
                sqlChanged := True;
               end;
                // H olmayanlar için kontroller
 if (ZQMySQLAd.FieldByName('guncelleme').AsString <> 'H')then
  begin

   if (ZQMySQLAd.FieldByName('n11hc').AsString <> 'H')then
  begin
    zymysqfiyat.SQL.Add('n11fiyati = :n11Price, ');
    zymysqfiyat.ParamByName('n11Price').AsFloat := n11Price;

    sqlChanged := True;
  end;
 if (ZQMySQLAd.FieldByName('hbhc').AsString <> 'H')then
  begin
    zymysqfiyat.SQL.Add('hepsiburadafiyati = :hbPrice, ');
    zymysqfiyat.ParamByName('hbPrice').AsFloat := hbPrice;
     sqlChanged := True;
  end;
   if (ZQMySQLAd.FieldByName('tdhc').AsString <> 'H')then
  begin
    zymysqfiyat.SQL.Add('trendyolfiyati = :trendyolSalePrice, ');
    zymysqfiyat.ParamByName('trendyolSalePrice').AsFloat := trendyolSalePrice;
    sqlChanged := True;
  end;
    if (ZQMySQLAd.FieldByName('idehc').AsString <> 'H')then
  begin
    zymysqfiyat.SQL.Add('idefixfiyati = :idefixSalePrice, ');
    zymysqfiyat.ParamByName('idefixSalePrice').AsFloat := idefixSalePrice;
    sqlChanged := True;
  end;
 if (ZQMySQLAd.FieldByName('tdminhc').AsString <> 'H')then
  begin
    zymysqfiyat.SQL.Add('trednyolrekabetalt = :trendyol_price_min, ');
    zymysqfiyat.ParamByName('trendyol_price_min').AsFloat := trendyol_price_min;
    sqlChanged := True;
  end;
 if (ZQMySQLAd.FieldByName('tdmaxhx').AsString <> 'H')then
  begin
    zymysqfiyat.SQL.Add('trendyolrekabetust = :trendyol_price_max, ');
    zymysqfiyat.ParamByName('trendyol_price_max').AsFloat := trendyol_price_max;
    sqlChanged := True;
  end;
     if (ZQMySQLAd.FieldByName('hbminhx').AsString <> 'H')then
  begin
    zymysqfiyat.SQL.Add('hepsiburadarekabetalt = :hb_price_min, ');
    zymysqfiyat.ParamByName('hb_price_min').AsFloat := hb_price_min;
    sqlChanged := True;
  end;
 if (ZQMySQLAd.FieldByName('hbmaxhc').AsString <> 'H')then
  begin
    zymysqfiyat.SQL.Add('hepsiburadarekabetust = :hb_price_max, ');
    zymysqfiyat.ParamByName('hb_price_max').AsFloat := hb_price_max;
    sqlChanged := True;
  end;
  if (ZQMySQLAd.FieldByName('n11minhc').AsString <> 'H')then
  begin
    zymysqfiyat.SQL.Add('n11rekabetalt = :n11_price_min, ');
    zymysqfiyat.ParamByName('n11_price_min').AsFloat := n11_price_min;
    sqlChanged := True;
  end;
  if (ZQMySQLAd.FieldByName('n11max').AsString <> 'H')then
  begin
    zymysqfiyat.SQL.Add('n11rekabetust = :n11_price_max, ');
    zymysqfiyat.ParamByName('n11_price_max').AsFloat := n11_price_max;
    sqlChanged := True;
  end;
  end;          // Son virgülü kaldır
                if zymysqfiyat.SQL[zymysqfiyat.SQL.Count - 1].EndsWith(', ') then
                  zymysqfiyat.SQL[zymysqfiyat.SQL.Count - 1] := zymysqfiyat.SQL[zymysqfiyat.SQL.Count - 1].Substring(0, zymysqfiyat.SQL[zymysqfiyat.SQL.Count - 1].Length - 2);

//                zymysqfiyat.SQL.Add(' WHERE urun_id = :productID');

                // Parametrelerin atanması
                zymysqfiyat.ParamByName('price2').AsFloat := price2;
                zymysqfiyat.ParamByName('n11_commission').AsFloat := n11_commission;
                zymysqfiyat.ParamByName('hb_commission').AsFloat := hb_commission;
                zymysqfiyat.ParamByName('trendyol_commission').AsFloat := trendyol_commission;
                zymysqfiyat.ParamByName('eptt_commission').AsFloat := eptt_commission;
                zymysqfiyat.ParamByName('price6').AsFloat := price6;
                zymysqfiyat.ParamByName('price7').AsFloat := price7;
                zymysqfiyat.ParamByName('price1').AsFloat := price1;
                zymysqfiyat.ParamByName('hbProductUrl').AsString := hbProductUrl;
                zymysqfiyat.ParamByName('n11ProductUrl').AsString := n11ProductUrl;
                zymysqfiyat.ParamByName('trendyolProductUrl').AsString := trendyolProductUrl;
                zymysqfiyat.ParamByName('hb_price_min').AsFloat := hb_price_min;
                zymysqfiyat.ParamByName('hb_price_max').AsFloat := hb_price_max;
                zymysqfiyat.ParamByName('trendyol_price_min').AsFloat := trendyol_price_min;
                zymysqfiyat.ParamByName('trendyol_price_max').AsFloat := trendyol_price_max;
                zymysqfiyat.ParamByName('n11_price_min').AsFloat := n11_price_min;
                zymysqfiyat.ParamByName('n11_price_max').AsFloat := n11_price_max;
                zymysqfiyat.ParamByName('barcode').AsString := barcode;
                if guncelleme<>'' then
                begin
                zymysqfiyat.ParamByName('guncelleme').AsString := guncelleme;
                 end;
  if sqlChanged then
  begin
    zymysqfiyat.SQL.Add(' WHERE urun_id = :productID');
    zymysqfiyat.ParamByName('productID').AsString := productID;
    zymysqfiyat.ExecSQL;
  end;

              end
              //eğer komisyonlar değişmiş ise
              else if (ZQMySQLAd.FieldByName('n11komisyon').AsFloat <> n11_commission)
              or  (ZQMySQLAd.FieldByName('hepsiburadakomisyon').AsFloat <> hb_commission) or
              (ZQMySQLAd.FieldByName('trendyolkomison').AsFloat <> trendyol_commission) or
              (ZQMySQLAd.FieldByName('idefixkomisyon').AsFloat <> eptt_commission)
               then
              begin
                ShowMessage('sener'+(ZQMySQLAd.FieldByName('smartlinkfiyati').asstring)+productName);
              ShowMessage(floattostr(price2)+productName) ;
                zymysqfiyat.SQL.Clear;
                zymysqfiyat.SQL.Add('UPDATE veriler SET ');
                zymysqfiyat.SQL.Add('smartlinkfiyati = :price2, ');
                zymysqfiyat.SQL.Add('n11komisyon = :n11_commission, ');
                zymysqfiyat.SQL.Add('hepsiburadakomisyon = :hb_commission, ');
                zymysqfiyat.SQL.Add('trendyolkomison = :trendyol_commission, ');
                zymysqfiyat.SQL.Add('idefixkomisyon = :eptt_commission, ');
                zymysqfiyat.SQL.Add('maliyet = :price6, ');
                zymysqfiyat.SQL.Add('ozelmaliyet = :price7, ');
                zymysqfiyat.SQL.Add('listefiyati = :price1, ');
                zymysqfiyat.SQL.Add('hb_product_url = :hbProductUrl, ');
                zymysqfiyat.SQL.Add('n11_product_url = :n11ProductUrl, ');
                zymysqfiyat.SQL.Add('trendyol_product_url = :trendyolProductUrl, ');
                zymysqfiyat.SQL.Add('hepsiburadarekabetalt = :hb_price_min, ');
                zymysqfiyat.SQL.Add('hepsiburadarekabetust = :hb_price_max, ');
                zymysqfiyat.SQL.Add('trednyolrekabetalt = :trendyol_price_min, ');
                zymysqfiyat.SQL.Add('trendyolrekabetust = :trendyol_price_max, ');
                zymysqfiyat.SQL.Add('n11rekabetalt = :n11_price_min, ');
                zymysqfiyat.SQL.Add('n11rekabetust = :n11_price_max, ');
                zymysqfiyat.SQL.Add('barcode = :barcode, ');

    zymysqfiyat.SQL.Add('n11fiyati = :n11Price, ');
    zymysqfiyat.ParamByName('n11Price').AsFloat := n11Price;
    zymysqfiyat.SQL.Add('hepsiburadafiyati = :hbPrice, ');
    zymysqfiyat.ParamByName('hbPrice').AsFloat := hbPrice;
    zymysqfiyat.SQL.Add('trendyolfiyati = :trendyolSalePrice, ');
    zymysqfiyat.ParamByName('trendyolSalePrice').AsFloat := trendyolSalePrice;
    zymysqfiyat.SQL.Add('idefixfiyati = :idefixSalePrice, ');
    zymysqfiyat.ParamByName('idefixSalePrice').AsFloat := idefixSalePrice;
    zymysqfiyat.SQL.Add('trednyolrekabetalt = :trendyol_price_min, ');
    zymysqfiyat.ParamByName('trendyol_price_min').AsFloat := trendyol_price_min;
    zymysqfiyat.SQL.Add('trendyolrekabetust = :trendyol_price_max, ');
    zymysqfiyat.ParamByName('trendyol_price_max').AsFloat := trendyol_price_max;
    zymysqfiyat.SQL.Add('hepsiburadarekabetalt = :hb_price_min, ');
    zymysqfiyat.ParamByName('hb_price_min').AsFloat := hb_price_min;
    zymysqfiyat.SQL.Add('hepsiburadarekabetust = :hb_price_max, ');
    zymysqfiyat.ParamByName('hb_price_max').AsFloat := hb_price_max;
    zymysqfiyat.SQL.Add('n11rekabetalt = :n11_price_min, ');
    zymysqfiyat.ParamByName('n11_price_min').AsFloat := n11_price_min;
    zymysqfiyat.SQL.Add('n11rekabetust = :n11_price_max, ');
    zymysqfiyat.ParamByName('n11_price_max').AsFloat := n11_price_max;

               // Son virgülü kaldır
                if zymysqfiyat.SQL[zymysqfiyat.SQL.Count - 1].EndsWith(', ') then
                  zymysqfiyat.SQL[zymysqfiyat.SQL.Count - 1] := zymysqfiyat.SQL[zymysqfiyat.SQL.Count - 1].Substring(0, zymysqfiyat.SQL[zymysqfiyat.SQL.Count - 1].Length - 2);

//                zymysqfiyat.SQL.Add(' WHERE urun_id = :productID');

                // Parametrelerin atanması
                zymysqfiyat.ParamByName('price2').AsFloat := price2;
                zymysqfiyat.ParamByName('n11_commission').AsFloat := n11_commission;
                zymysqfiyat.ParamByName('hb_commission').AsFloat := hb_commission;
                zymysqfiyat.ParamByName('trendyol_commission').AsFloat := trendyol_commission;
                zymysqfiyat.ParamByName('eptt_commission').AsFloat := eptt_commission;
                zymysqfiyat.ParamByName('price6').AsFloat := price6;
                zymysqfiyat.ParamByName('price7').AsFloat := price7;
                zymysqfiyat.ParamByName('price1').AsFloat := price1;
                zymysqfiyat.ParamByName('hbProductUrl').AsString := hbProductUrl;
                zymysqfiyat.ParamByName('n11ProductUrl').AsString := n11ProductUrl;
                zymysqfiyat.ParamByName('trendyolProductUrl').AsString := trendyolProductUrl;
                zymysqfiyat.ParamByName('hb_price_min').AsFloat := hb_price_min;
                zymysqfiyat.ParamByName('hb_price_max').AsFloat := hb_price_max;
                zymysqfiyat.ParamByName('trendyol_price_min').AsFloat := trendyol_price_min;
                zymysqfiyat.ParamByName('trendyol_price_max').AsFloat := trendyol_price_max;
                zymysqfiyat.ParamByName('n11_price_min').AsFloat := n11_price_min;
                zymysqfiyat.ParamByName('n11_price_max').AsFloat := n11_price_max;
                zymysqfiyat.ParamByName('barcode').AsString := barcode;




    zymysqfiyat.SQL.Add(' WHERE urun_id = :productID');
    zymysqfiyat.ParamByName('productID').AsString := productID;
     zymysqfiyat.ExecSQL;

              end


              else burası çalışmıyor
              begin
              ShowMessage('Product ID: ' + productID + ' | Güncelleme: ' + ZQMySQLAd.FieldByName('guncelleme').AsString);

               zymysqfiyat.SQL.Clear;
                zymysqfiyat.SQL.Add('UPDATE veriler SET ');



            if ZQMySQLAd.FieldByName('maliyet').AsFloat <> price6 then
            begin
            zymysqfiyat.SQL.Add('maliyet = :price6, ');
            zymysqfiyat.ParamByName('price6').AsFloat := price6;
            sqlChanged := True;
  end;
  if ZQMySQLAd.FieldByName('ozelmaliyet').AsFloat <> price7 then
  begin
    zymysqfiyat.SQL.Add('ozelmaliyet = :price7, ');
    zymysqfiyat.ParamByName('price7').AsFloat := price7;
    sqlChanged := True;
  end;

  if ZQMySQLAd.FieldByName('hb_product_url').AsString <> hbProductUrl then
  begin
    zymysqfiyat.SQL.Add('hb_product_url = :hbProductUrl, ');
    zymysqfiyat.ParamByName('hbProductUrl').AsString := hbProductUrl;
    sqlChanged := True;
  end;

  if ZQMySQLAd.FieldByName('n11_product_url').AsString <> n11ProductUrl then
  begin
    zymysqfiyat.SQL.Add('n11_product_url = :n11ProductUrl, ');
    zymysqfiyat.ParamByName('n11ProductUrl').AsString := n11ProductUrl;
    sqlChanged := True;
  end;

 if ZQMySQLAd.FieldByName('trendyol_product_url').AsString <> trendyolProductUrl then
  begin
    zymysqfiyat.SQL.Add('trendyol_product_url = :trendyolProductUrl, ');
    zymysqfiyat.ParamByName('trendyolProductUrl').AsString := trendyolProductUrl;
    sqlChanged := True;
  end;
  if ZQMySQLAd.FieldByName('n11komisyon').AsFloat <> n11_commission then
  begin
    zymysqfiyat.SQL.Add('n11komisyon = :n11_commission, ');
    zymysqfiyat.ParamByName('n11_commission').AsFloat := n11_commission;
    sqlChanged := True;
  end;
 if ZQMySQLAd.FieldByName('hepsiburadakomisyon').AsFloat <> hb_commission then
  begin
    zymysqfiyat.SQL.Add('hepsiburadakomisyon = :hb_commission, ');
    zymysqfiyat.ParamByName('hb_commission').AsFloat := hb_commission;
    sqlChanged := True;
  end;

  if ZQMySQLAd.FieldByName('trendyolkomison').AsFloat <> trendyol_commission then
  begin
    zymysqfiyat.SQL.Add('trendyolkomison = :trendyol_commission, ');
    zymysqfiyat.ParamByName('trendyol_commission').AsFloat := trendyol_commission;
    sqlChanged := True;
  end;
  if ZQMySQLAd.FieldByName('idefixkomisyon').AsFloat <> eptt_commission then
  begin
    zymysqfiyat.SQL.Add('idefixkomisyon = :eptt_commission, ');
    zymysqfiyat.ParamByName('eptt_commission').AsFloat := eptt_commission;
    sqlChanged := True;
  end;


   if ZQMySQLAd.FieldByName('n11fiyati').AsFloat <> n11Price then
  begin
   ShowMessage(floattostr(n11Price));

     if ZQMySQLAd.FieldByName('n11hc').AsString <> 'H' then
  begin
    zymysqfiyat.SQL.Add('n11hc = :n11hc, ');
    zymysqfiyat.SQL.Add('n11minhc = :n11minhc, ');
    zymysqfiyat.SQL.Add('n11maxhc = :n11maxhc, ');
        zymysqfiyat.ParamByName('n11hc').AsString := 'H';
    zymysqfiyat.ParamByName('n11minhc').AsString := 'H';
    zymysqfiyat.ParamByName('n11maxhc').AsString := 'H';

      end;
      zymysqfiyat.SQL.Add('n11fiyati = :n11Price, ');
     zymysqfiyat.ParamByName('n11Price').AsFloat := n11Price;
    sqlChanged := True;
  end;
if ZQMySQLAd.FieldByName('hepsiburadafiyati').AsFloat <> hbPrice then
begin
  zymysqfiyat.SQL.Add('hepsiburadafiyati = :hbPrice, ');
  if ZQMySQLAd.FieldByName('hbhc').AsString <> 'H' then
  begin
    zymysqfiyat.SQL.Add('hbhc = :hbhc, ');
    zymysqfiyat.SQL.Add('hbminhc = :hbminhc, ');
    zymysqfiyat.SQL.Add('hbmaxhc = :hbmaxhc, ');
    zymysqfiyat.ParamByName('hbhc').AsString := 'H';
    zymysqfiyat.ParamByName('hbminhc').AsString := 'H';
    zymysqfiyat.ParamByName('hbmaxhc').AsString := 'H';
  end;
  zymysqfiyat.ParamByName('hbPrice').AsFloat := hbPrice;
  sqlChanged := True;
end;

   if ZQMySQLAd.FieldByName('trendyolfiyati').AsFloat <> trendyolSalePrice then
  begin
    zymysqfiyat.SQL.Add('trendyolfiyati = :trendyolSalePrice, ');
      if ZQMySQLAd.FieldByName('hbhc').AsString <> 'H' then
  begin
    zymysqfiyat.SQL.Add('tdhc = :tdhc, ');
    zymysqfiyat.SQL.Add('tdminhc = :tdminhc, ');
    zymysqfiyat.SQL.Add('tdmaxhc = :tdmaxhc, ');

    zymysqfiyat.ParamByName('tdhc').AsString := 'H';
    zymysqfiyat.ParamByName('tdminhc').AsString := 'H';
    zymysqfiyat.ParamByName('tdmaxhc').AsString := 'H';
  end;
      zymysqfiyat.ParamByName('trendyolSalePrice').AsFloat := trendyolSalePrice;
    sqlChanged := True;
  end;
          if ZQMySQLAd.FieldByName('idefixfiyati').AsFloat <> idefixSalePrice then
  begin
    zymysqfiyat.SQL.Add('idefixfiyati = :idefixSalePrice, ');
     if ZQMySQLAd.FieldByName('hbhc').AsString <> 'H' then
  begin
    zymysqfiyat.SQL.Add('idehc = :idehc, ');

    zymysqfiyat.ParamByName('idehc').AsString := 'H';
  end;
      zymysqfiyat.ParamByName('idefixSalePrice').AsFloat := idefixSalePrice;
    sqlChanged := True;
  end;

    if ZQMySQLAd.FieldByName('trednyolrekabetalt').AsFloat <> trendyol_price_min then
  begin
    zymysqfiyat.SQL.Add('trednyolrekabetalt = :trendyol_price_min, ');
    zymysqfiyat.ParamByName('trendyol_price_min').AsFloat := trendyol_price_min;
    sqlChanged := True;
  end;

  if ZQMySQLAd.FieldByName('trendyolrekabetust').AsFloat <> trendyol_price_max then
  begin
    zymysqfiyat.SQL.Add('trendyolrekabetust = :trendyol_price_max, ');
    zymysqfiyat.ParamByName('trendyol_price_max').AsFloat := trendyol_price_max;
    sqlChanged := True;
  end;

  if ZQMySQLAd.FieldByName('hepsiburadarekabetalt').AsFloat <> hb_price_min then
  begin
    zymysqfiyat.SQL.Add('hepsiburadarekabetalt = :hb_price_min, ');
    zymysqfiyat.ParamByName('hb_price_min').AsFloat := hb_price_min;
    sqlChanged := True;
  end;

  if ZQMySQLAd.FieldByName('hepsiburadarekabetust').AsFloat <> hb_price_max then
  begin
    zymysqfiyat.SQL.Add('hepsiburadarekabetust = :hb_price_max, ');
    zymysqfiyat.ParamByName('hb_price_max').AsFloat := hb_price_max;
    sqlChanged := True;
  end;
  if ZQMySQLAd.FieldByName('n11rekabetalt').AsFloat <> n11_price_min then
  begin
    zymysqfiyat.SQL.Add('n11rekabetalt = :n11_price_min, ');
    zymysqfiyat.ParamByName('n11_price_min').AsFloat := n11_price_min;
    sqlChanged := True;
  end;

  if ZQMySQLAd.FieldByName('n11rekabetust').AsFloat <> n11_price_max then
  begin
    zymysqfiyat.SQL.Add('n11rekabetust = :n11_price_max, ');
    zymysqfiyat.ParamByName('n11_price_max').AsFloat := n11_price_max;
    sqlChanged := True;
  end;

                // Son virgülü kaldır
                if zymysqfiyat.SQL[zymysqfiyat.SQL.Count - 1].EndsWith(', ') then
                  zymysqfiyat.SQL[zymysqfiyat.SQL.Count - 1] := zymysqfiyat.SQL[zymysqfiyat.SQL.Count - 1].Substring(0, zymysqfiyat.SQL[zymysqfiyat.SQL.Count - 1].Length - 2);

if sqlChanged then
  begin

    zymysqfiyat.SQL.Add(' WHERE urun_id = :productID');
    zymysqfiyat.ParamByName('productID').AsString := productID;
    zymysqfiyat.ExecSQL;
  end;





           end
            else
            begin
              zymysqfiyat.SQL.Clear;
              zymysqfiyat.SQL.Add('INSERT INTO veriler (urun_id, smartlinkfiyati, listefiyati, n11fiyati, hepsiburadafiyati, trendyolfiyati, idefixfiyati,');
              zymysqfiyat.SQL.Add('urun_adi, urun_kodu, n11komisyon, hepsiburadakomisyon, trendyolkomison, idefixkomisyon, maliyet, ozelmaliyet, hb_product_url, n11_product_url, trendyol_product_url, ' +
                                  'hepsiburadarekabetalt, hepsiburadarekabetust, trednyolrekabetalt, trendyolrekabetust, n11rekabetalt, n11rekabetust, barcode)');
              zymysqfiyat.SQL.Add('VALUES (:productID, :price2, :price1, :n11Price, :hbPrice, :trendyolSalePrice, :idefixSalePrice, :productName, :productCode,');
              zymysqfiyat.SQL.Add(':n11_commission, :hb_commission, :trendyol_commission, :eptt_commission, :price6, :price7, :hbProductUrl, :n11ProductUrl, :trendyolProductUrl, ' +
                                  ':hb_price_min, :hb_price_max, :trendyol_price_min, :trendyol_price_max, :n11_price_min, :n11_price_max, :barcode)');
              zymysqfiyat.ParamByName('productID').AsString := productID;
              zymysqfiyat.ParamByName('price2').AsFloat := price2;
              zymysqfiyat.ParamByName('price1').AsFloat := price1;
              zymysqfiyat.ParamByName('n11Price').AsFloat := n11Price;
              zymysqfiyat.ParamByName('hbPrice').AsFloat := hbPrice;
              zymysqfiyat.ParamByName('trendyolSalePrice').AsFloat := trendyolSalePrice;
              zymysqfiyat.ParamByName('idefixSalePrice').AsFloat := idefixSalePrice;
              zymysqfiyat.ParamByName('productName').AsString := productName;
              zymysqfiyat.ParamByName('productCode').AsString := productCode;
              zymysqfiyat.ParamByName('n11_commission').AsFloat := n11_commission;
              zymysqfiyat.ParamByName('hb_commission').AsFloat := hb_commission;
              zymysqfiyat.ParamByName('trendyol_commission').AsFloat := trendyol_commission;
              zymysqfiyat.ParamByName('eptt_commission').AsFloat := eptt_commission;
              zymysqfiyat.ParamByName('price6').AsFloat := price6;
              zymysqfiyat.ParamByName('price7').AsFloat := price7;
              zymysqfiyat.ParamByName('hbProductUrl').AsString := hbProductUrl;
              zymysqfiyat.ParamByName('n11ProductUrl').AsString := n11ProductUrl;
              zymysqfiyat.ParamByName('trendyolProductUrl').AsString := trendyolProductUrl;
              zymysqfiyat.ParamByName('hb_price_min').AsFloat := hb_price_min;
              zymysqfiyat.ParamByName('hb_price_max').AsFloat := hb_price_max;
              zymysqfiyat.ParamByName('trendyol_price_min').AsFloat := trendyol_price_min;
              zymysqfiyat.ParamByName('trendyol_price_max').AsFloat := trendyol_price_max;
              zymysqfiyat.ParamByName('n11_price_min').AsFloat := n11_price_min;
              zymysqfiyat.ParamByName('n11_price_max').AsFloat := n11_price_max;
              zymysqfiyat.ParamByName('barcode').AsString := barcode;
              zymysqfiyat.ExecSQL;
            end;

          end;

          zsqlfiyat.Close;
        end;

        ZQSQLAd.Close;
        ZQMySQLAd.Close;
        ZQSQL.Next;
      end;

      ZQSQL.Close;
      ZMySQL.Commit;
    except
      on E: Exception do
      begin
        ZMySQL.Rollback;
        ShowMessage('Hata: ' + E.Message);
      end;
    end;

    ZQuery1.Close;
    ZQuery1.Open;
    UpdateRecordCountLabel;
    ShowMessage('Eşitleme Tamamlandı');
  end;
end;

end;
end;
Wave 呼叫

Merhabalar,

Öncelikle okunaklılığı ve takibi daha rahat olması için kod bloğunuzu formatlayarak ekleyin.
   


Gelen verilerinizi kontrol edin. Gelen bir veri else bloğunu es geçiyordur verdiğiniz kritere göre.
Gelen verileri tek tek analiz edin.

Kolay gelsin.
Amaç, bilginin de/aklın da zekat'ını vermek.
Cevapla
#3
selamlar şimdi kontrol ettim aslında hiçbir koşul çalışmıyor o yüzden de direk insert into ya atlıyor sebebi hakkında bir fikriniz varmı
Cevapla
#4
(13-07-2024, Saat: 10:16)senerelmas Adlı Kullanıcıdan Alıntı: selamlar şimdi kontrol ettim aslında hiçbir koşul çalışmıyor o yüzden de direk insert into ya atlıyor sebebi hakkında bir fikriniz varmı

Merhaba,

O zaman koşulları tek tek analiz edin. Adım adım giderek bakın.

-"Kodlarınızı" düzelt diyerek formatlayın.-

Kolay gelsin.
Amaç, bilginin de/aklın da zekat'ını vermek.
Cevapla
#5
ya sorunum şu sanırım iki while döngüsü birbirinden bağımsız kalmış birleştiremedim.
Cevapla
#6
Kodlarınızı yukarıda #2  nolu mesajda  @hi_selamlar  gösterildiği şekilde forma eklerseniz cevap vermek isteyenlerin işini kolaylaştırırsınız ve cevap alma ihtimaliniz artar.

Kodlarınızı formatlı eklediğinizde aşağıdaki şekilde gibi görünecek  daha anlaşılır olacaktır. 

procedure TForm7.urunEkle;
var
 useresponse2: Integer;
 productID, productName, productCode, barcode,guncelleme: string;
 price7, price1, price2, n11Price, hbPrice, trendyolSalePrice, idefixSalePrice, price6, n11_commission, hb_commission, eptt_commission, trendyol_commission: Double;
 hbProductUrl, n11ProductUrl, trendyolProductUrl: string;
 hb_price_min, hb_price_max, trendyol_price_min, trendyol_price_max, n11_price_min, n11_price_max: Double;
 sqlChanged: Boolean;
begin
 sqlChanged := False;
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  wsdl veri çekme hatası tuna 6 177 15-01-2025, Saat: 16:54
Son Yorum: hi_selamlar
  kap.org.tr veri alma hk. pro_imaj 7 5.530 22-10-2024, Saat: 19:57
Son Yorum: Zeynepfeyza20
  PDF dosyasından veri almak Mikdad 11 566 07-09-2024, Saat: 10:51
Son Yorum: mrmarman
  Ms Sql İki db yi birbirine eşitleme tuna 5 325 07-08-2024, Saat: 18:33
Son Yorum: tuna
  DBdrid Veri sürükle bırak aeyeci@hotmail.com 2 663 11-07-2024, Saat: 17:00
Son Yorum: Jazlyn



Konuyu Okuyanlar: 1 Ziyaretçi