Avatar billede fhansen Praktikant
23. januar 2006 - 20:52 Der er 3 kommentarer og
1 løsning

TQuery Variable

Hejsa

Nu har jeg så et nyt et problem med SQL

Jeg har nedenstående kode

SELECT * FROM BådPlads.db
WHERE And_Number IN (SELECT kunde_nummer FROM salgsliste.db)
ORDER BY bredde

Jeg vil gerne ændre bredde til en variable, således at det bliver muligt at indsætte andre felter bredde, min kode skulle se ca. sådan

Params[0].AsString := 'Bredde'

SELECT * FROM BådPlads.db
WHERE And_Number IN (SELECT kunde_nummer FROM salgsliste.db)
ORDER BY :Felt

Men det fungere ikke helt efter mit hoved.


Hilsen


Finn
Avatar billede fhansen Praktikant
23. januar 2006 - 20:55 #1
Hej der skulle have stået

Jeg vil gerne ændre bredde til en variable, således at det bliver muligt at indsætte andre felter end bredde, min kode skulle se ca. sådan


Finn
Avatar billede hrc Mester
25. januar 2006 - 08:47 #2
Det ser ud til du bruger Paradox (fy, fy, skamme) - og i øvrigt bruger danske tegn i filnavnene (endnu en gang fy, fy, skamme) - Det er dårlig praksis, men det virker jo.

Jeg mener ikke du kan bruge en parameter på dette sted, altså sådan her:

SELECT * FROM BådPlads.db
WHERE And_Number IN (SELECT kunde_nummer FROM salgsliste.db)
ORDER BY :sortering

... ParameterByName('sortering').AsString := 'bredde';

Du bliver nødt til at have en streng som du formatterer før kaldet:

st := 'SELECT * FROM BådPlads.db'+
      '  WHERE And_Number IN (SELECT kunde_nummer FROM salgsliste.db)'+
      '  ORDER BY %s';
Query.Sql.Text := Format(st,['bredde']);
Avatar billede fhansen Praktikant
25. januar 2006 - 20:52 #3
Ja ja ved det godt, men når man nu er vokset op med Paradox, så er det jo det nemmest, men er  da godt klar over, at jeg burde læse videre, Jeg er også enig i at det er en frygtlig dårlig ide med danske felt navne, har slået mig selv over fingerne, men.........

Jeg er næsten sikker på at du har ret i at jeg ikke kan bruge parameter efter ORDER BY desvæære,jag har forsøgt din ide, og den virker jo, men vil give en del kode skriving, da der skal kunne kaldes fra forskellige memu's !!

PS hvilken database ville du bruge ??
Avatar billede hrc Mester
31. januar 2006 - 23:31 #4
En gratis en. Firebird er lige at gå til, for Borland har komponenter til den. MySql er ikke meget anderledes - så længe opslag sker vha. SQL-queries.

De har begge virket fint til mit behov. Synes nok at Firebird er det mest homogene produkt, mens at MySql er en hastig voksende/ændrende tingest, der kan en hel masse.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester