Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem 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.

Předmět Autor Datum
3. SELECT * FROM data WHERE id<>123 nebo SELECT * FROM data WHERE id!=123 - nejsem si jist syntaxí (…
host 26.01.2007 16:27
host
Nie nepletiem. Ide o to, že jeden stĺpec je unikátny ako ID a je to číslo typ AutoInc. Ide o to, že…
msx. 26.01.2007 16:48
msx.
Aha, tak to jsem tě špatně pochopil, za což se omlouvám. Takže ti jde o něco takového: ... WHERE j…
host 26.01.2007 16:58
host
No to by mohlo byť ono. Je to v Delphi, takže netuším, či mi to sysntax zoberie. Len čo sa k tomu do…
msx. 26.01.2007 18:29
msx.
Nejde o to, že to je v Delphi, ale k jaké databázi se program připojuje (sql syntax). Dynamické ses…
host 26.01.2007 18:40
host
1. Nastav si adresár vo vlastnosti DatabaseName: napr: Query1.DatabaseName := 'c:\delphi\demos\datab…
pme 26.01.2007 16:58
pme
1. Jasné, kedysi sme sa tu o tom na poradni bavili, len mi to vyfučalo. Ďakujem. Vyriešené. V jedno…
msx. 26.01.2007 18:27
msx.
2. Treba použiť: select obch_meno as tu bude názov stĺpca /lenže medzery a dikritiku nepozná... Tak…
pme 26.01.2007 19:12
pme
2. Áno, to je v poriadku, lenže ak vymením databázu cez SQL príkaz, tak to nebude sedieť. Nedá sa to…
msx. 26.01.2007 20:08
msx.
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…
host 26.01.2007 20:36
host
Skús to takto: /skúšal som to cez SQL Builder SELECT CustNo, Company, Addr1, City customer."žžžžžččč…
pme 26.01.2007 20:42
pme
Pokud si pomoci Field editoru prednastavis sloupce a spustis dotaz, ktery nebude s presne stejnym vy… poslední
Jan Fiala 26.01.2007 21:55
Jan Fiala

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:

... WHERE jmeno_tabulky = 'TABULKA' AND jmeno_sloupce NOT IN ('ID')

případně

SELECT jmeno_tabulky.*, NULL AS nechteny_sloupec

Ale záleží, jakou používáš databázi, každá mi jinou syntaxi. Ještě existuje jedno řešení - sestavit SELECT dynamicky.

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:

FOREACH sloupec_tabulky DO
  IF (jmeno_sloupce<>"ID") Promenna=Promenna+jmeno_sloupce;
...
SELECT Promenna FROM tabulka

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.

Zpět do poradny Odpovědět na původní otázku Nahoru