

DELPHI ADO komponenty
Zdravím Vás. Som začiatočník a chcel by som Vás poprosiť, či niekto nemá nejaký jednoduchý projekt v Delphi kde sa pracuje s údajmi v databáze v Accesse prostredníctvom ADO komponentov SQL príkazmi.(prezeranie napr.v DBgride, vkladanie záznamov, editácia a pod.)Vopred Vám ďakujem.
email- suchan@wmx.sk
Rado
vo verzii delphi,ktorá to podporuje máš dostatok príkladov v samotnej inštalácii
Ďakujem.Skúsim prezrieť.Ale ešte by som aj napriek tomu poprosil, ak niekto máte to zapojenie komponent.Kopec vecí mi nie je jasných.Aký je rozdiel medzi ADOQuery,ADOCommand, ADODataSet, kedy ktorú komponentu použiť atď.Skúšal som vkladať do tabuľky prostredníctvom ADOCommand nejaké hodnoty cez príkaz INSERT INTO kontakty VALUES ... a keď som zadal všetky hodnoty akrem primárneho kľúča tak mi vypísalo chybové hlásenie, že nie sú vyplnené všetky hodnoty.Ale primárny kľúč mám nastavený v accese ako automat. číslo a to samozrejme nenapĺňam. Proste moc by mi pomohlo také všeobecné základné nastavenia z dôvodu výuky a pochopenia práce jednotlivých komponent.Ešte raz ďakujem.
ADOQuery slouzi pro spousteni SQL prikazu (SELCT, INSERT, UPDATE, DELETE, ...)
ADOCommand je univerzalni komponenta, kterou muzes pouzit pro Query, StoredProc i jako Dataset. Zalezi, jak nastavis Command type
ADODataset slouzi pro pristup k tabulce primo jako k tabulce. Ale tohle se na SQL serverech moc nenosi, protoze tim degradujes SQL server na obycejny souborovy server
Na nejakom fóre som čítal, že ADOQuery je určené hlavne pre SELECT, že na INSERT atd. je určený ADOCommand.Tak mám v tom ešte väčší chaos.Ešte otázočka - na čo je určený ADOTable.Chcel by som Vás ešte poprosiť aspoň pre začiatok nejaký ľahký návod prepojenia jednotlivých komponent. Napr. pre výpis y tabulky v Accese do DBGridu mám komponenty napojené: ADOConnection->ADODataset->Datasource->DBGrid (Funguje to ale neviem či je to najvhodnejšie prepojenie).No a mám problém s vkladaním údajov do tabuľky.Neviem či pri tomto zapojení mi to pôjde. Ďakujem za odpovede.
ADOQuery muzes pouzit na jakekoliv SQL prikazy.
Na spusteni prikazu jsou 2 metody:
Open v pripade, ze se vraci data (SELECT)
ExecSQL v pripade, ze se data nevraci (INSERT, DELETE, UPDATE)
Tohle vse samozrejme udelas i omoci ADOCommand, kdyz jej prepnes do rezimu Query
Pokud pouzivas ADODataset, pristupujes primo k tabulce. V pripade Access je to jedno, stejne budes mit lkalni program. Pokud bys mel sitovy program a SQL server, tohle by zpusobilo tahani vsech dat z tabulky k tobe
Obrovská vďaka za objasnenie. Pokúsim sa s tým popracovať. Určite sa ešte ozvem.
Ešte sa chcem spýtať, ADOTable je prioritne na čo určený? Aké je jeho použitie?
ADOTable je primy pristup k tabulce. Pro Access je to pouzitelne, pro SQL servery se tomu vyhni.
Proste si otevres konkretni tabulku a v ni provadis zmeny.
Ke druhe casti tve odpovedi.
Ta nema nic spolecneho s Delphi nebo ADO, ale musis se nauci syntaxi SQL. Bez toho nemuzes pokracovat.
Takze si spust ACCESS, pouzij wizarda a podivej se jake prikazy generuje.
ADOTable1.Append;
ADOQuery1.Active:=false;
ADOQuery 1.SQL.Clear;
ADOQuery1.SQL.Add('UPDATE Kontakty SET Meno = "'+Edit1.Text+'", Priezvisko = "'+Edit2.Text+'", Adresa = "'+Edit3.Text+'", Mesto = "'+Edit4.Text+'", PSC = "'+Edit5.Text+'", Stat = "'+Edit6.Text+'", Email = "'+Edit7.Text+'", Telefon = "'+Edit8.Text+'" WHERE KontaktyID = '+ ADOTable1.FieldByName('KontaktyID').AsString );
ADOQuery1.ExecSQL;
ADOTable1.Post;
Chcel by som Vás poprosiť o radu. 1.Otázka - ADOQuery slúži na vykonanie SQL príkazu a ADOTable na vkladanie údajov do tabuľky prostredníctvom Datasource?
2. Mám vyššie uvedené príkazy popísané správne?
3. Pri sopustení mi to vyhadzuje syntaktickú chybu v hrubo označenej časti- chýba nejaký operátor. Už si s tým skutočne neviem rady.
Ďakujem za akúkoľvek pomoc
1. Ano, ADOQuery slouží na vykonání příkazu SQL. ADOTable na práci (vkládání, prohlížení, změnu) s tabulkou nebo pohledem.
2. Ne.
3. Ve WHERE vám chybí uvozovky, do kterých se cpe text: WHERE KontaktyID = "'+ ADOTable1.FieldByName('KontaktyID').AsString + '"').
Poznámka: Přidání nové věty a naplnění hodnotami zadanými operátorem, je daleko výhodnější udělat rovnou přes SQL INSERT. Parametry pro SQL příkazy je lépe zadávat přes parametry, než to tam pracně cpát takto. Lépe se to udržuje, je to přehlednější pro případné pozdější úpravy programu.
Jaky vyznam mam vlozeni prazdne vety do tabulky (APPEND) a jeji ulozeni (POST) ve sojeni s tim SQL prikazem?
Bud pouzij ADOQuery a prikaz INSERT nebo to napln primo v ADOTable.
Ďakujem Vám obom za rady. Už som to naplnil priamo cez adotable.funguje to výborne.Len som nevedel že to ide aj cez adotable, mal som za to že update pojde len cez adoquery a ono funguje aj adotable1.edit.
To jsou 2 ruzne pristupy. Bud pres AdoTable pres Edit/Append, naplneni hodnot a Post nebo pres AdoQuery pres INSERT INTO tabulka ... nebo UPDATE tabulka SET ...
JJ, už mi je to zase jasnejšie. Učím sa...
Ešte raz vďaka