Avatar billede anold Nybegynder
27. juni 2001 - 08:24 Der er 20 kommentarer og
1 løsning

SQL

Jeg vil gerne finde alle de tegningsnummer der begynder med \'620\' via SQL. Jeg har prøvet med denne kode, men så finder SQL også dem som ligger over \'620\' F.eks 850

DataModule1.QRSoeg.Close;
    DataModule1.QRSoeg.SQL.Clear;
    DataModule1.QRSoeg.SQL.Add(\'Select * From Rekvisition\');
    DataModule1.QRSoeg.SQL.Add(\'Where Tegningsnr >= \"\'
    + UpperCase(Edit1.Text) + \'\"\');
    DataModule1.QRSoeg.SQL.Add(\'order by Rekvisitionsnr\');
    DataModule1.QRSoeg.Open;


Hvordan gør jeg det
anold
Avatar billede seider Nybegynder
27. juni 2001 - 08:31 #1
DataModule1.QRSoeg.SQL.Add(\'Where Tegningsnr >= \"\'
    + UpperCase(Edit1.Text) + \'\"\');

skal være

DataModule1.QRSoeg.SQL.Add(\'Where Tegningsnr = \"\'
    + UpperCase(Edit1.Text) + \'\"\');
Avatar billede snowball Novice
27. juni 2001 - 08:36 #2
Seider: Så får han jo kun dem der er lig med 620 og ikke f.eks. 6201, 6202 osv !

Snowball
Avatar billede seider Nybegynder
27. juni 2001 - 08:43 #3
dooo 2 sec tænke

DataModule1.QRSoeg.SQL.Add(\'Where Tegningsnr >= \"\'
    + UpperCase(Edit1.Text) + \'\"\');

bliver til, men der skal laves en stringlength p åden selvfølgelig, og man kan ikke bare skrive det ind i sql.

DataModule1.QRSoeg.SQL.Add(\'Where RTrim (Tegningsnr,3) >= \"\'
    + UpperCase(Edit1.Text) + \'\"\');

det er vist mere end 15 p. du skal smide
Avatar billede erikjacobsen Ekspert
27. juni 2001 - 08:50 #4
hvad med

  select * from rekvisition where tegningsnr like \'620%\'
Avatar billede snowball Novice
27. juni 2001 - 08:52 #5
erikjacobsen har ret. Det virker i hvert fald hos mig ;)

Snowball
Avatar billede martinlind Nybegynder
27. juni 2001 - 09:35 #6
snowball >> han har ret, det er måden at gøre det på
Avatar billede anold Nybegynder
27. juni 2001 - 10:46 #7
De 620 er kun et eks. det er jo det som der står i Edit1.Text jeg skal bruge skal der så stå :
select * from rekvisition where tegningsnr like \'Edit1.text+ %\'
eller hvad ?
anold
Avatar billede martinlind Nybegynder
27. juni 2001 - 11:07 #8
Sådan :

Query1.SQL.Text := \'select * from rekvisition where tegningsnr like \'+Edit1.text+\'%\';

det burde virke.
Avatar billede pellelil Nybegynder
27. juni 2001 - 11:11 #9
Som regel er en \"LIKE\" væsentlig mere \"belastende\" end en \">=\"
Avatar billede anold Nybegynder
27. juni 2001 - 11:29 #10
Hej MartinLind
det virker ikke helt
når jeg indtaster F.eks 620 i edit1.text
og \'køre\' min SQL sætning får jeg en fejl, noget med token ??

  DataModule1.QRSoeg.Close;
    DataModule1.QRSoeg.SQL.Clear;
    DataModule1.QRSoeg.SQL.Text := \'select * from rekvisition where Ordrenr like \'+Edit1.text+\'%\';
    DataModule1.QRSoeg.SQL.Add(\'order by Rekvisitionsnr\');
    DataModule1.QRSoeg.Open;

kan du se hvad der er galt
anold
Avatar billede martinlind Nybegynder
27. juni 2001 - 11:35 #11
DataModule1.QRSoeg.SQL.Text := \'select * from rekvisition where Ordrenr like \'\'\'+Edit1.text+\'\'\'%\';

Der skal lige et par \"gnyffer\" omkring, det er jo en streng vi søger på, man kan ikke lave like på et Integer field.

Sorry.
Avatar billede delphi Nybegynder
27. juni 2001 - 12:04 #12
Nu er Anold en gammel kollega fra min tid på Danfoss, så derfor genkender jeg det tegningsnummer system som spørger til.  Danfoss systemet er opbygget som:


xxxAyyyy

Hvor xxx er et tal, her 620.
A er et bogstav, dvs. A til Z
yyyy er så et løbenummer, altså et tal.

Hele tegningsnummeret er derfor gemt som en streng.

Jeg ville selv have svaret med Eriks svar:
\'SELECT * FROM tabel WHERE col LIKE \"\' + Edit1.Text + \'\"\'

Peter

Avatar billede delphi Nybegynder
27. juni 2001 - 12:06 #13
ups, glemte et %-tegn til sidst...
Altså:

.....ext + \'\"%\'  // Eller er det + \'%\"\'.... ka\' ik\' husk \'et.
Avatar billede martinlind Nybegynder
27. juni 2001 - 12:19 #14
delphi >> øhhh, var det ikke også det jeg skrev ??
Avatar billede anold Nybegynder
27. juni 2001 - 12:38 #15
Jeg kan ikke fatte det jeg bliver ved med at få den \'token\' fejl

DataModule1.QRSoeg.Close;
    DataModule1.QRSoeg.SQL.Clear;
    DataModule1.QRSoeg.SQL.Add(\'select * from rekvisition\');
    DataModule1.QRSoeg.SQL.Add(\'where Ordrenr Like \'\'\'+Edit1.text+\'\'\'%\');
    DataModule1.QRSoeg.SQL.Add(\'order by Rekvisitionsnr\');
    DataModule1.QRSoeg.Open;

Hvad fa*/&$¤ er der galt

Hej Delphi, det er langtid siden at jeg har hørt fra dig

Hilsen Anold
Avatar billede martinlind Nybegynder
27. juni 2001 - 12:57 #16
Prøv at lave en space før din Order By og før din Where, nogle db\'er kan ikke lide at man bare add\'er uden space i mellem.

du skal ende med en sql streng med en \' omkring din søge streng, delphi vil gerne havde to \' i sin streng hvis det skal ende med en, og det er enkelt \' vi taler om ikke \" .

/Martin
Avatar billede delphi Nybegynder
27. juni 2001 - 13:05 #17
Hej Anders.

  Jepper det er lang tid siden.  Jeg har for travlt til at være med på eksperten.  Lidt ærgerligt, for detver/er jo meget sjovt.

Til sagen:

Når jeg skal lave SQL sætninger, så gør jeg tit det, at jeg går ind i database exploreren (I Delphi 5: Data base menu -> Explorer).  Her åbner jeg mig så den database det drejer sig om og vupti dukker der et nyt faneblad, kaldet \"Enter SQL\", op i højre side af windowet.  Klick her, og du kan nu direkte lege med SQL udtryk indtil du er tilfreds.  Når dette er tilfældet klippe-klistre du bare udtrykket tilbage til dit Delphi program.

Peter


Avatar billede martinlind Nybegynder
27. juni 2001 - 13:34 #18
du kan da også bare bruge SQLBuilder, højre click på din query.
Avatar billede delphi Nybegynder
27. juni 2001 - 13:41 #19
Anders bruger D5 pro. Der er ingen SQL builder i Pro udgaven.....
Avatar billede martinlind Nybegynder
27. juni 2001 - 13:51 #20
De rige har mange glæder *G* ( og de fatige mange børn )
Avatar billede delphi Nybegynder
27. juni 2001 - 13:57 #21
Vedr børn:

Advice for the day: If you have a lot a tension and you get a headache, do
what it says on the aspirin bottle: \"Take two aspirin\" and \"Keep away from
children\"
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