Více příkazu DELETE pro jeden Button – Delphi – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Více příkazu DELETE pro jeden Button – Delphi – Fórum – Programujte.comVíce příkazu DELETE pro jeden Button – Delphi – Fórum – Programujte.com

 
Hledat
Moderní platforma pro vytvoření vašeho nového webu – Wix.com.
Nyní už můžete mít web zdarma.
Vybavení pro Laser Game
Spuštěn Filmový magazín
Laser Game Brno

Spuštěný nový filmový web Filmožrouti.cz — vše o Avengers, Pacific Rim, Thor, Star Wars…
krpik0
Duch
2. 12. 2018   #1
-
0
-

Zdravím, 

Mám aplikaci pro jednoduchý sklad a prodej

Používám k tomu mysql databázi

Zde bych chtěl udělat program , který mi smaže data ke dni

takže jsem si udělal nový program kde mam button a textedit

Do textedit zadávám datum např. 2018-01-01

Button mi projede příkazy

procedure TForm1.Button2Click(Sender: TObject);

begin


with adoQuery1 do
  begin

    Active:=False;
      sql.clear;

 adoQuery1.SQL.Add('Delete from prodej where Cas < '+ QuotedStr(Edit1.Text));

adoQuery1.SQL.Add('DELETE FROM inventura WHERE  timestamp  < '+ QuotedStr(Edit1.Text)); ;

   adoQuery1.SQL.Add('DELETE FROM prodej_polozek WHERE Cas < '+ QuotedStr(Edit1.Text));

tedy bude to vypadat jako 

 adoQuery1.SQL.Add('Delete from prodej where Cas < ' '2018-01-01'));

Problém je že mi to smaže jen data z jedné tabulky

můžete mi poradit co zde přidat aby mi button smazal všechny tři tabulky?

Nahlásit jako SPAM
IP: 46.174.58.–
gna
~ Anonymní uživatel
746 příspěvků
2. 12. 2018   #2
-
0
-

SQL je sice stringlist, ale myslím, že se skládá dohromady a je to jen jeden příkaz.

MySQL podporuje multi-statement. Pokud to jde nějak zapnout, tak by stačilo jednotlivé příkazy oddělit středníkem. Jinak to asi nepůjde.

Nahlásit jako SPAM
IP: 213.211.51.–
gna
~ Anonymní uživatel
746 příspěvků
2. 12. 2018   #3
-
0
-

Teda nepůjde jedním příkazem. Postupně to samozřejmě půjde :)

Nahlásit jako SPAM
IP: 213.211.51.–
krpik0
Duch
2. 12. 2018   #4
-
0
-

#3 gna
No ale pomohl jsi mi tím slovem multi-statement :-D vygooglil jsem to a našel

Už jsem nevěděl jak to hledat

Za každý příkaz dat ExecSQL;  SQL.Clear; a je to

Děkuji

Nahlásit jako SPAM
IP: 46.174.58.–
MilanL+1
Věrný člen
3. 12. 2018   #5
-
0
-

#4 krpik
jde o to z jaké tabulky ti to maže, jaká je struktura a jaké jsou vazby,

např. pokud tam máš foreing klíče (podle nastavení) může být potřeba mazat ve správným pořadí, např pokud máš strukturu prodej < prodej_polozek tak nejdřív je možná třeba smazat položky,

také jestli je u položek ten datum, v optimalizované DB jsou společná data v té hlavní části a u položek jen data polozky,pak může být potřeba dotaz zkombinovat asi nějak takhle

delete from polozky where ID_prodeje in (select a.ID from prodej a join left prodej_polozky b on a.ID=b.ID_prodeje where a.datum='.....')

Nahlásit jako SPAM
IP: 185.112.167.–
RomanZ
~ Anonymní uživatel
267 příspěvků
4. 12. 2018   #6
-
0
-

Nastuduj si, co jsou to transakce.

START TRANSACTION, COMMIT a ROLLBACK

Nahlásit jako SPAM
IP: 82.142.121.–
5. 12. 2018   #7
-
0
-

... a ještě UDF a procedury

hu

Nahlásit jako SPAM
IP: 195.178.67.–
MilanL+1
Věrný člen
5. 12. 2018   #8
-
0
-

#1 krpik
ještě k tomu kodu

máš tam sice With do

ale u těch vlastnistí Active a SQL ti na začátku chybí tečky.

Nahlásit jako SPAM
IP: 185.112.167.–
Zjistit počet nových příspěvků

Přidej příspěvek

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 45 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032018 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý