Autor Téma: Mysql 5.5 s komponentou Zeous nejde mi zmazat záznam prosím radu  (Přečteno 5817 krát)

Offline jtfcobra

  • Plnoletý
  • ***
  • Příspěvků: 240
  • Karma: 0
    • Verze Delphi: XE4,XE5 v testovní
    • XDA Developers
  Mam napsano toto pros smazani a hazi to divnou chybu ze neni kompatibilni muzete poradit?


  login2.zquery1.SQL.Clear;
  login2.ZQuery1.SQL.Add('DELETE FROM hotelsystem.mereni WHERE datum = '''+thelist.ItemFocused.SubItems[2]+'''');
  login2.ZQuery1.Active := true;

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 7392
  • Karma: 44
    • Verze Delphi: W11 + D11.3.1
Re:Mysql 5.5 s komponentou Zeous nejde mi zmazat záznam prosím radu
« Odpověď #1 kdy: 30-01-2013, 10:40:54 »
thelist.ItemFocused.SubItems[2] - skontroluj si formát dátumu! Som presvedčený, že chyba je v tom.
Win11 64b, Delphi 11.3.1, FireBird 4.01
Expert na kladenie nejasne formulovaných otázok.

Offline jtfcobra

  • Plnoletý
  • ***
  • Příspěvků: 240
  • Karma: 0
    • Verze Delphi: XE4,XE5 v testovní
    • XDA Developers
Re:Mysql 5.5 s komponentou Zeous nejde mi zmazat záznam prosím radu
« Odpověď #2 kdy: 30-01-2013, 10:44:29 »
Pise to CAN NOT OPEN RESOULT
var
t:string;
begin
  t:=thelist.ItemFocused.SubItems[2];
  login2.zquery1.SQL.Clear;
  login2.ZQuery1.SQL.Add('DELETE FROM hotelsystem.mereni WHERE datum = '''+t+'''');
  login2.ZQuery1.Active := true;

Petr01

  • Host
Re:Mysql 5.5 s komponentou Zeous nejde mi zmazat záznam prosím radu
« Odpověď #3 kdy: 30-01-2013, 10:59:33 »
Neměl by si dát jenom ZQuery1.Execute, nebo něco podobného. Tohle je dotaz, který něco vykoná, ale nevrátí výsledek.
A proč nepoužiješ parametry, vyhneš se problémům s konverzí?
login2.ZQuery1.SQL.Add('DELETE FROM hotelsystem.mereni WHERE datum = :Datum');
login2.ZQuery1.Params[0].AsDateTime:=T;
login2.ZQuery1.Active := true;

Offline jtfcobra

  • Plnoletý
  • ***
  • Příspěvků: 240
  • Karma: 0
    • Verze Delphi: XE4,XE5 v testovní
    • XDA Developers
Re:Mysql 5.5 s komponentou Zeous nejde mi zmazat záznam prosím radu
« Odpověď #4 kdy: 30-01-2013, 11:04:53 »
Ja to mam ulozene jako TEXT ne DATE protoze mi to blbne ve Windows 8


Pak to vypada takle
1.1.2013 W7
1 . 1.2013 W8

a kdyz potrebuji pak vyhledavat hazi to chybu....

Petr01

  • Host
Re:Mysql 5.5 s komponentou Zeous nejde mi zmazat záznam prosím radu
« Odpověď #5 kdy: 30-01-2013, 11:13:52 »
No to je ten problém s konverzí. Ten db server může jednou chtít datum jako dd.mm.yyyy jindy mm/dd/yyyy a co já vím co ještě. Převeď si to z toho testu na datum a to pak dej jako parametr do dotazu. Budeš to mít jsnažší.

Offline jtfcobra

  • Plnoletý
  • ***
  • Příspěvků: 240
  • Karma: 0
    • Verze Delphi: XE4,XE5 v testovní
    • XDA Developers
Re:Mysql 5.5 s komponentou Zeous nejde mi zmazat záznam prosím radu
« Odpověď #6 kdy: 30-01-2013, 11:16:36 »
Takle ukladam a kdyz dam ukladat datum tak to napise ze neni kompatibilni datum viz VAL3? Nevite jak to prevest abych mohl pouzivat date...

       thelist.ItemIndex:= k;
       login2.zquery1.SQL.Clear;
       login2.ZQuery1.SQL.Add('INSERT INTO hotelsystem.MERENI (id_zarizeni,popis,datum,predchozi,aktualni) VALUES(:Val1, :Val2, :Val3, :Val4, :Val5)');
       login2.ZQuery1.ParamByName('Val1').AsString := thelist.ItemFocused.Caption;
       login2.ZQuery1.ParamByName('Val2').AsString := thelist.ItemFocused.SubItems[0];
       login2.ZQuery1.ParamByName('Val3').AsDate := strtodate(thelist.ItemFocused.SubItems[2]);
       login2.ZQuery1.ParamByName('Val4').AsString := thelist.ItemFocused.SubItems[3];
       login2.ZQuery1.ParamByName('Val5').AsString := thelist.ItemFocused.SubItems[4];
       login2.ZQuery1.ExecSQL;
       PrevodDB.Caption:='Náhled na stažená data - Data jsou uložena do DB...';

Petr01

  • Host
Re:Mysql 5.5 s komponentou Zeous nejde mi zmazat záznam prosím radu
« Odpověď #7 kdy: 30-01-2013, 11:28:02 »
Pokud je v tabulce hotelsystem.mereni definovano pole Datum jako date, tak by to mělo fungovat.  Případně bych zkusil místo asDate dát asDateTime. Jinak mi to přijde v pořádku, až na absenci odchycení případného Exception.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 7392
  • Karma: 44
    • Verze Delphi: W11 + D11.3.1
Re:Mysql 5.5 s komponentou Zeous nejde mi zmazat záznam prosím radu
« Odpověď #8 kdy: 30-01-2013, 11:52:18 »
Nemá to byť bez tej konverzie?

login2.ZQuery1.ParamByName('Val3').AsDate := thelist.ItemFocused.SubItems[2];
Win11 64b, Delphi 11.3.1, FireBird 4.01
Expert na kladenie nejasne formulovaných otázok.

Offline jtfcobra

  • Plnoletý
  • ***
  • Příspěvků: 240
  • Karma: 0
    • Verze Delphi: XE4,XE5 v testovní
    • XDA Developers
Re:Mysql 5.5 s komponentou Zeous nejde mi zmazat záznam prosím radu
« Odpověď #9 kdy: 30-01-2013, 11:57:41 »
a moje data jsou:
dd.mm.rrrr

a hledam jak to konvertovat

v DATABAZY JE
rok/mm/dd

Offline Mi.Chal.

  • Guru
  • *****
  • Příspěvků: 577
  • Karma: 25
Re:Mysql 5.5 s komponentou Zeous nejde mi zmazat záznam prosím radu
« Odpověď #10 kdy: 30-01-2013, 12:43:20 »
a moje data jsou:
dd.mm.rrrr

a hledam jak to konvertovat

v DATABAZY JE
rok/mm/dd

pokud to máš v db definované správně (tj jako date, datetime atd) tak v databázi je číslo. Zápisy typu 2013-01-30 jsou jenom reprezentace pro lidi, aby ten datum byli schopní přečíst a zadat, ale jinak to není důležité. Správné je mít dotaz s parametry, lepení parametrů do stringu je špatné. Navíc klient může používat jiný formát data než db. V případě čtení to máš přečíst jako date/datetime a uživateli naformátovat podle nastavení stroje, pokud si to komponenta neformátuje sama.

Offline jtfcobra

  • Plnoletý
  • ***
  • Příspěvků: 240
  • Karma: 0
    • Verze Delphi: XE4,XE5 v testovní
    • XDA Developers
Re:Mysql 5.5 s komponentou Zeous nejde mi zmazat záznam prosím radu
« Odpověď #11 kdy: 30-01-2013, 14:13:02 »
Hotovo vyreseno

Datum ukladam jako text abych s tím mohl pracovat....

  begin
  thelist.ItemIndex:= 2;
  login2.zquery1.SQL.Clear;
  login2.ZQuery1.SQL.Add('DELETE FROM hotelsystem.mereni WHERE datum = :Datum');
  login2.ZQuery1.ParamByName('Datum').AsString:=thelist.ItemFocused.SubItems[2];
  login2.ZQuery1.ExecSQL;
  end;

Offline jtfcobra

  • Plnoletý
  • ***
  • Příspěvků: 240
  • Karma: 0
    • Verze Delphi: XE4,XE5 v testovní
    • XDA Developers
Re:Mysql 5.5 s komponentou Zeous nejde mi zmazat záznam prosím radu
« Odpověď #12 kdy: 30-01-2013, 14:16:57 »
Kód: Delphi [Vybrat]
  1. procedure Trecepce.Button3Click(Sender: TObject);
  2. var
  3. nazev3: widestring;
  4. a,b,c:real;
  5. begin
  6.  begin
  7.  ComboBox1.Clear;
  8.  login2.zquery1.SQL.Clear;
  9.  login2.ZQuery1.SQL.Add('SELECT pocet FROM '''+label11.Caption+''' WHERE popis=:popis');
  10.  login2.ZQuery1.ParamByName('Popis').AsString:=combobox3.text;
  11.  login2.ZQuery1.Active := true;
  12.  nazev3 := login2.ZQuery1.Fields.fieldbyname('POCET').AsString;
  13.  login2.ZQuery1.ExecSQL;
  14.  button1.Hint:=nazev3;
  15.  showmessage(nazev3);
  16.  end;
  17.  begin
  18.  a := StrToFloat(button1.Hint);
  19.  b := StrToFloat(edit2.text);
  20.  c:=(b+a);
  21.  button1.Hint:=(FormatFloat('0.00',c));
  22.  login2.zquery1.SQL.Clear;
  23.  login2.ZQuery1.SQL.Add('UPDATE '''+label11.Caption+''' SET pocet = :pocet WHERE popis = :popis ');
  24.  login2.ZQuery1.ParamByName('Pocet').AsString:=button1.hint;
  25.  login2.ZQuery1.ParamByName('Popis').AsString:=combobox3.text;
  26.  login2.ZQuery1.ExecSQL;
  27.  end;
  28.  Button2.Click;
  29.  Showmessage('Úspešně naskladněno');
  30. end;

Ted mam problem s timhle kodem  vypada ze mu vadi uvozovky  ''';

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 7392
  • Karma: 44
    • Verze Delphi: W11 + D11.3.1
Re:Mysql 5.5 s komponentou Zeous nejde mi zmazat záznam prosím radu
« Odpověď #13 kdy: 30-01-2013, 14:49:17 »
Po prvé "Datum ukladam jako text abych s tím mohl pracovat...." je poriadna kravina. Keď nič iné, tak existuje DateToStr().
Po druhé, daj si výraz 'SELECT pocet FROM '''+label11.Caption+''' WHERE popis=:popis' zobraziť. Stačí ShowMessage a budeš vedieť na čom si.
Win11 64b, Delphi 11.3.1, FireBird 4.01
Expert na kladenie nejasne formulovaných otázok.

Offline jtfcobra

  • Plnoletý
  • ***
  • Příspěvků: 240
  • Karma: 0
    • Verze Delphi: XE4,XE5 v testovní
    • XDA Developers
Re:Mysql 5.5 s komponentou Zeous nejde mi zmazat záznam prosím radu
« Odpověď #14 kdy: 30-01-2013, 14:54:06 »
Rada?