Delphi SQL - pridanie záznamu do spojených tabuliek
Mám otázok na SQL síce dosť, ale nedá mi pokoj ešte toto:
1. Aký je rozdiel v zápise: from dbf1, dbf2 a from dbf1 join dbf2?
2. Keď mám združené databázy select * from dbf1, dbf2 where dbf1.id = dbf2.dbf1_id a v Query v Delphi a pokúsim sa pridať záznam pomocou Query.Append, zrejme sa mi to nepodarí alebo čo sa stane? Ak chcem pridávať do databázy, tak treba mať štandardný príkaz select * from dbf a vtedy to ide, inak nie?
Nepíšeš, jestli SQL v Delphi je SQL BDE nebo propojené (přes ADO, ODBC) na jiný databázový stroj (MS SQL, MySQL, ...). SQL každé databáze se chová trošku (někdy i dost) jinak. V BDE je jen velmi slabý odvar dnešních SQL .
1. Není-li JOIN předcházeno INNER, { { LEFT | RIGHT | FULL } [ OUTER ], fungují (IMHO v BDE) oba tvary shodně.
2. V BDE jsou spojení dvou a více tabulek SELECTem vždy read only. Neplatí to pro jiné databázové motory (engine ).
Tomu inner nerozumiem, že o čo sa jedná, ale myslím, že mne stačí aj to čo viem. Ďakujem za kvalitnú odpoveď. Dnes (vlastne už včera) som navrhoval databázoý systém pre jeden program. Určoval som aké databázy tam budú, ich prepojenia a veru dobre som urobil, že som pred nejakými dvomi mesiacmi kúpil knižku SQL kapesní průvodce. Je tam pekne popísaný návrh prepojenia databáz a dosť mi to pomohlo. Uvažujem o článku pre poradňu. Určite sa to niektorým programátorom čo začínajú s databázami bude hodiť.
Nezaměňuješ náhodou pojmy "tabulka" a "databáze" !?!
1. existuje vic forem, jak spojit tabulky:
2. a jak a kam by podle tebe mel ten zaznam vlozit? Vkladat zaznamy bys mel pomoci Query a prikazu INSERT INTO, ne pomoci Live Query. Michas SQL pristup s tabulkovym pristupem.
Pokud to chces opravdu takto delat, podivej se na komponentu UpdateQuery (nebo tak nejak). Ta uoznuje napsat SQL prikaz, ktery se vykona pri Append apod.