Delphi - TQuery - viac otázok
1. Ako nastaviť iný adresár pre databázy v programe? Query mi to hľadá len v adresári programu.
2. Ako nastaviť pri SELECT iný názov stĺpca? Mám povedzme Obch_Meno a chcem, aby sa DBGride zobrazilo Obchodné meno.
3. Ako dosiahnuť, aby sa zobrazili všetky stĺpce okrem jedného (ID)? Niečo ako SELECT *, -ID FROM data.
3. SELECT * FROM data WHERE id<>123 nebo SELECT * FROM data WHERE id!=123 - nejsem si jist syntaxí
(a asi si pleteš sloupce s řádky)
Nie nepletiem. Ide o to, že jeden stĺpec je unikátny ako ID a je to číslo typ AutoInc. Ide o to, že aby sa nezobrazil a aby som nemusel vypisovať do SELECT všetky stĺpce. Pokiaľ sa to nedá, nevadí, pretože to potrebujem len dočasne a potom to budem vypisovať aj tak celé.
Aha, tak to jsem tě špatně pochopil, za což se omlouvám.
Takže ti jde o něco takového:
případně
Ale záleží, jakou používáš databázi, každá mi jinou syntaxi. Ještě existuje jedno řešení - sestavit SELECT dynamicky.
No to by mohlo byť ono. Je to v Delphi, takže netuším, či mi to sysntax zoberie. Len čo sa k tomu dostanem, skúsim a dám vedieť.
Zostaviť Select dynamicky? To nepoznám.
Nejde o to, že to je v Delphi, ale k jaké databázi se program připojuje (sql syntax).
Dynamické sestavení Selectu, něco jako:
Samozřejmě to je velmi zjednodušeno a jen schematicky znázorněno. Ale snad to je z toho jasné.
1. Nastav si adresár vo vlastnosti DatabaseName:
napr: Query1.DatabaseName := 'c:\delphi\demos\database'
2. Napr. Pravý klik na komponentu Query - Fields Editor... - pravý klik - Add All Fields...
vyberieš si stĺpec a v object inspectore si nastav DisplayLabel
3. To nejde musíš urobiť select stlpec1, stlpec2... from ...
1. Jasné, kedysi sme sa tu o tom na poradni bavili, len mi to vyfučalo. Ďakujem. Vyriešené.
V jednom Query budem len prepínať pomocou vlastnosti SQL rôzne databázy, takže by som radšej prijal niečo čo je možné napísať priamo do Select. Myslím, že je taká možnosť, len si ju nepamätám. Ale teraz nie som si istý, či to náhodou nie je len na zmenu názvu stĺpca, ale bez diakritiky.
2. Treba použiť: select obch_meno as tu bude názov stĺpca /lenže medzery a dikritiku
nepozná...
Takže napr.:
dbgrid1.columns[0].Title.Caption := 'Obchodné meno';
2. Áno, to je v poriadku, lenže ak vymením databázu cez SQL príkaz, tak to nebude sedieť. Nedá sa to zmeniť v SQL príkaze priamo?
Vždyť ti to psal, v SQL dotazu se to dá přímo změnit (sloupec AS novy_nazev), ale není možné použít diakritiku a mezery.
Skús to takto: /skúšal som to cez SQL Builder
SELECT CustNo, Company, Addr1, City customer."žžžžžčččč čččč", Contact, LastInvoiceDate FROM customer
medzery OK, ale diakritika eééé
Pokud si pomoci Field editoru prednastavis sloupce a spustis dotaz, ktery nebude s presne stejnym vysledkem, jak jsou nastaveny sloupce, spadne to na chybu.