Keresés
Hírlevél
 
Kiemelt témák
»Hogy viszonyul ehhez a család?
»Legjobb metodika emberi relációk tárolására
»A programozó hibája, hogy törik a programját?
»Jogosultság kezelés mezőszinten
Állás/munka
»Wordpress szakértőt keresünk
»Kamu álláshirdetők listája
»Front-end fejlesztő / Sitebuilder
»DataStore Developer
»PHP programozó, webfejlesztő munkát keres
» több téma
Tudástár
Oldalon keresés 8x írja ki az eredményt
?XML-ből sok szövegmező
?Input mezőből visszakapott adat probléma
TinyMCE és az ékezetek
?Rengeteg hasonló kép betöltése gyorsan (PHP)
Ékezetes kar. nem minden táblában jól
?Shelltreeview gond
Grafikon rajzolás probléma
?Onclick= php függvény
?Egyenes megrajzolása
?Access-ből adott xml fájl kinyerése
Listázás időpont szerint
Exportálás változó könyvtárba
*Link eredményének kiolvasása
Imagemapre képet
» több téma
Társalgó
»A programozásból jól meg lehet élni?
»MFC tanulás
»Könyvet adok-veszek
»Hogy viszonyul ehhez a család?
»Nintendo wii
»Letölthető az új Rad Studio XE és Delphi XE
»Weblap véleményezés
»Játékmotor elmélet
»Informatikai bulvárlap
»Delphi-ről C++-ra váltás
» több téma
ASP  |  C#  |  C++  |  CSS  |  Delphi  |  Flash  |  HTML  |  Java  |  JavaScript  |  Pascal  |  Perl  |  PHP  |  Python  |  Visual Basic  |  Visual C++  |    »    

Tudástár

»

Query SQL -ben FROM megadása paraméterként

»

Query SQL -ben FROM megadása paraméterként

nyitotta: HGabo, idő: 2010.03.14., moderátor: netangel
  Értesítés változás esetén Felvétel kedvencekhez Küldés emailben Nyomtatható verzió

Kategóriák:Programozási nyelvek » Delphi
Programozási nyelvek » SQL

Sorrend:
Időzóna:
Blokkméret:
Sziasztok!

Delphi 7-ben irok egy kis programot, ahol azt kellene megoldanom, hogy:

Egy Query SQL paramcsában a FROM legyen egy OpenDialog ban kiválasztott adatbázis tábla.
Az SQL:

SELECT DISTINCT Lang,TestID
FROM =:DBFile
ORDER BY Lang, TestID

A paraméter a pas-ban:
Params[0].AsString := OpenDialog1.FileName;

És a hiba üzenet:
Invalid use of keyword! Token=?

Előre is köszi a segítséget!

Üdv.: HGabo
Hi !

Sztem így helyes:

qry.sql.text:='SELECT DISTINCT Lang,TestID '+
'FROM '+opendialog1.filename+
' ORDER BY Lang, TestID';


Üdv:

aszamos
Hello aszamos!

Sajnos így is ugyanaz a hiba!

Üdv.!
Minek az egyenlőségjel?

SELECT DISTINCT Lang,TestID FROM :DBFile ORDER BY Lang, TestID
Szia .:Des:.!

Így is ugyanaz a hiba.
Segíthet..(MS SQL adatbázis kezelés Delphi-ből)
Hi

Ha megpróbálod fixen beírni a táblanevet akkor jó?
Szia!

Akkor igen, de itt mindig más táblát kellene használni.
Szia!

A from záradék nem változó. Az sql nem fogja értelmezni a parancsot. Előre alakítsd ki a változót, nyisd meg az állományt, majd írasd meg a programmal az utasítást, amit közölj az értelmeződdel.

De szerintem felejtős ez a megoldás. Sokkal jobb lenne, ha nem külön állományokkal, hanem konkrét adatbázissal foglalkoznál.

Zenus
Var
forras : String;
Begin
forras := 'FROM '+OpenDialog1.FileName;
ShowMessage(forras); //Hogy értelmes-e az SQL-ed vagy nem
Query.Close;
Query.SQL.Add('SELECT Lang, TestID');
Query.SQL.Add(forras);
Query.SQL.Add('ORDER BY Lang');
Query.Open;
Csak úgy mellékesen megjegyzem, hogy ha így működik a programod, akkor ott valamilyen alapvető tervezési hiba van. Ha több táblád van ugyanolyan mezőkkel az csak azt jelentheti, hogy meg lehetett volna oldani egy táblában is: könnyebb kezelhetőség, jobb sebesség, ilyesmik.
Valószínűleg ezért nem készítették fel az SQL szervert arra, hogy a FROM záradékot paraméterként értelmezze. Ráadásul az ilyen összetákolt SQL lekérdezések tipikusan biztonsági rések. Főleg, ha egy sima filenév határozza meg a lekérdezésedet JÉZUSOM!!!!!!!!! Csodálom, hogy majd' mindenki serényen asszisztál ehhez.

Szerintem gondold inkább át a tervezést, minthogy egy rossz megoldást görgess magad előtt.
:))))))))))))
Tökéletesen igazad van!
Szia!

Rájöttem, hogy ez így nem járható út...!
Azóta megoldottam máskép a dolgot...

Amúgy a programnak csak az egyik tábla a szerves része, a másiknak csak a tartalmát kell igény szerint hozzáadni a másik ugyanolyan szerkezetű táblához...!

Amúgy köszönöm a kritikát (végül is abból tanul az ember )

Üdv.:

Gabó
Amúgy köszönöm a kritikát (végül is abból tanul az ember )
Szívesen. És nagyon örülök neki, hogy végül így döntöttél. :)
Leginkább azért, mert a legtöbb kérdező le***rja nagy ívben az ilyen jótanácsokat, és ha jön egy működő forráskód, már pontoz is. Ez egy ritka, kellemes csalódás volt

Üdv,
Hix
Örülök, hogy pozitív csalódást okoztam neked! :)
Szerintem a pont a tiéd, végül is te világosítottál fel, hogy a FROM záradékot nem tudja az SQL paraméterként értelmezni! :)))

Üdv,
Gabó
Belépés
E-mail cím:
Jelszó:

RSS források
-Hírek
-Cikkek
-Fórumok
-Állás/munka
Top pontgyűjtők
»Micu1.030
»Interlock280
»mezofi150
»Pitta_100
»Frostech0100
»szbzs.2100
»Riha60
»Akhiles50
»mrchandra50
»Bakter50
Top wikieditorok
»Sting
»Doi
»FlamingClaw
»Argathron
»Csaboka2
»Vodka
»Joexy
»Ivn
»Balucinho
»Kelemzol
» ugrás a wikire
A nap kifejezései
»Algoritmus
»Hogyan kezdjem el
»Perl
» ugrás a wikire
Hírek
»Megérkezett a PostgreSQL 9.0 kiadásra jelölt változata
»Letölthető az új Rad Studio XE és Delphi XE
»Function-X digitális művészeti találkozó és demoscene party
»Webfejlesztőknek szóló közösségi oldalt indított a Microsoft
»Letölthető a hardvergyorsított Chrome 7 első fejlesztői kiadása
» több hír
PC Fórum hírek
»Itt az első kép az AMD nyolcmagos processzoráról
»"Szuperdizájnos" érintő-egeret mutatott be a Microsoft
»Szabadalmaztatta a számítógép kikapcsolását a Microsoft
»Vírusriadót váltott ki a webezőknél a Google
»Ingyen iWiW-ezhetnek mobiljaikról a T-Mobile-osok
»Automatikusan kiválogatja legfontosabb leveleink a Google
»OOo4Kids - ingyenes Office csomag gyerekeknek
»Új, gyorsabb Core i3 és Pentium processzorokat jelentett be az Intel
Tagi blogok
»PSP
»Első Programozó
»USB
»PHP, mint sablonmotor egyszerűen