Anonymní profil lukas – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil lukas – Programujte.comAnonymní profil lukas – Programujte.com

 

Příspěvky odeslané z IP adresy 217.197.155.–

lukas
Delphi › Kontrola syntaxe sql
24. 6. 2012   #159456

#7 simas
Super díky moc, toto funguje. Ještě jsem tam měl jednu chybu a to v relaci objednavky->zakazky. Testoval jsem tedy tento retezec a šlo to v pohodě.

SELECT * FROM (Objednavky o LEFT JOIN Zakazky z ON o.id_objednavky=z.objednavka_id) LEFT JOIN Vyrobky v ON z.vyrobky_id=v.id_vyrobky

Takže výsledek je tedy 

SELECT o.datum_prijeti,zakaznik_id as zakaznik,(o.cislo_zakazky&"/"&poradi_zakazky) as cislo_zakazky,o.cislo_objednavky,v.nazev,v.cislo_vykresu,z.pocet_ks,z.cena_ks,z.cena_celkem,z.termin,'+'z.pripraveno_do_vyroby,z.predano_do_vyroby,z.tyden_plneni,z.poznamka,z.zadal_id as zadal,z.stav FROM (Objednavky o LEFT JOIN Zakazky z ON o.id_objednavky=z.objednavka_id) LEFT JOIN Vyrobky v ON z.vyrobky_id=v.id_vyrobky

Ještě jednou díky :-)

lukas
Delphi › Kontrola syntaxe sql
24. 6. 2012   #159452

#4 lukas
Stále to nefunguje, nevíte někdo prosím, čím by to mohlo být?

Syntaktická chyba (chybí operátor) v dotazovaném výrazu o.zakazky_id=z.id_zakazky) LEFT JOIN Vyrobky v on(z.vyrobky_id=v.id_vyrobky.
lukas
Delphi › Kontrola syntaxe sql
24. 6. 2012   #159451

#3 lukas

Select o.datum_prijeti,zakaznik_id as zakaznik,(o.cislo_zakazky&"/"&poradi_zakazky) as cislo_zakazky,cislo_objednavky,nazev_vyrobku,cislo_vykresu,pocet_ks,cena_ks,cena_celkem,termin,'+'pripraveno_do_vyroby,predano_do_vyroby,tyden_plneni,poznamka,zadal_id as zadal,stav from Objednavky o LEFT JOIN Zakazky z on (o.zakazky_id=z.id_zakazky) LEFT JOIN Vyrobky v on(z.vyrobky_id=v.id_vyrobky) GROUP BY z.id_zakazky
lukas
Delphi › Kontrola syntaxe sql
24. 6. 2012   #159450

Jejda, zapomněl jsem to seskupit, ale stále chyba :(

Select o.datum_prijeti,zakaznik_id as zakaznik,(o.cislo_zakazky&"/"&poradi_zakazky) as cislo_zakazky,cislo_objednavky,nazev_vyrobku,cislo_vykresu,pocet_ks,cena_ks,cena_celkem,termin,'+'pripraveno_do_vyroby,predano_do_vyroby,tyden_plneni,poznamka,zadal_id as zadal,stav from Objednavky o LEFT JOIN Zakazky z on (o.zakazky_id=z.id_zakazky) LEFT JOIN Vyrobky v on(z.vyrobky_id=v.id_vyrobky) GROUP BY z.id_zakazky

lukas
Delphi › Kontrola syntaxe sql
24. 6. 2012   #159449

Omlouvám se za překlep, má tam být LEFT Join

Select o.datum_prijeti,zakaznik_id as zakaznik,(o.cislo_zakazky&"/"&poradi_zakazky) as cislo_zakazky,cislo_objednavky,nazev_vyrobku,cislo_vykresu,pocet_ks,cena_ks,cena_celkem,termin,'+'pripraveno_do_vyroby,predano_do_vyroby,tyden_plneni,poznamka,zadal_id as zadal,stav from Objednavky o LEFT JOIN Zakazky z on (o.zakazky_id=z.id_zakazky) LEFT JOIN Vyrobky v on(z.vyrobky_id=v.id_vyrobky)
lukas
Delphi › Kontrola syntaxe sql
24. 6. 2012   #159448

Dobrý den, můžete mi prosím zkontrolovat SQL dotaz? Stále mi to háže nějakou chybu - chybí operátor v dotazovaném výrazu.

Moc díky.

Select o.datum_prijeti,zakaznik_id as zakaznik,(o.cislo_zakazky&"/"&poradi_zakazky) as cislo_zakazky,cislo_objednavky,nazev_vyrobku,cislo_vykresu,pocet_ks,cena_ks,cena_celkem,termin,'+'pripraveno_do_vyroby,predano_do_vyroby,tyden_plneni,poznamka,zadal_id as zadal,stav from Objednavky o LEFT JOIN Zakazky z on (o.zakazky_id=z.id_zakazky) LET JOIN Vyrobky v on(z.vyrobky_id=v.id_vyrobky)
lukas
Delphi › ADO - aktualizace dat spojen…
24. 6. 2012   #159441

Tak jsem to nakonec vyřešil šalamounsky, ale funguje to :-)

U ADOQuery jsem nastavil LockType na ltBatchOptimistic, takže záznamy mohu v DBGridu vesele upravovat. V momentě, kdy chci záznamy uložit, vyvolám SQL Update ..., nakonec provedu requery, aby se mi změna projevila i v gridu, a je to....

Díky všem:-)

lukas
Delphi › ADO - aktualizace dat spojen…
23. 6. 2012   #159440

Dobrý den,
mohl by mi někdo prosím poradit s tímto problémem? Potřeboval bych aktualizovat data načtena pomocí ADOQuery do DBGridu dotazem:
[code]
Select * from Zakazky z left join Vyrobky v on (v.id_vyrobky=z.vyrobky_id ) WHERE objednavka_id='+IntToStr(id)+' order by poradi_zakazky ASC;
[/code]
Problém je ten, že chci aktualizovat jen ty záznamy z tabulky Zakazky. Ten JOIN je tam pouze kvůli načtení názvu výrobku z tabulky Vyrobky. Zkoušel jsem vyvolat klasický SQL dotaz
[code]
"update Zakazky set vyrobky_id ='+inttostr(idv)+' where id_zakazky='+inttostr(ds.FieldByName('id_zakazky').Value)+''
[/code]
kde idv je id vyrobku a ds.FieldByName('id_zakazky').Value by mělo být id zakázky upravovaného záznamu. Toto jsem se snažil volat u ADOQuery onBeforePost(), ale házelo mi to chybu "Řádek nelze nalézt a aktualizovat. Pravděpodobně byly od posledního čtení změněny některé hodnoty." Nevíte prosím co s tím? Nemůžu se pohnout dál. Moc díky za odpověď.

 

 

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