/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
SQL problem
Fra : Carsten Mortensen


Dato : 06-11-06 12:51

Hej

Jeg har problem med en SQL forespørgelse:

Jeg får hele tiden fejl Type mismatch i expression når jeg forsøger at kører
mit progem.

Jeg har følgende kode:

procedure TqrRapport7.Query7BeforeOpen(DataSet: TDataSet);
begin
With Query7 do
Begin
Close;
SQL.Clear;
SQL.Add('select * from slgdata');
//SQL.Add('Where nr = "061010"'); Det kører hvis jeg bruger denne linie
istedet for den under.
SQL.Add('Where nr like ' + Rapport7.EDTnr7.Text);
SQL.Add(' Order by loebenr');
//Open;
end;
end;
end.

Det går galt når jeg ønsker at bruge nr (rapport7.edtnr.text) fra et edit
felt fra en anden form, hvor brugeren skal kunne ændre på nr.

hvis jeg bruger denne SQL.Add('Where nr = "061010"'); så virker det. men
jeg vil godt kunne ændre på nr via min anden form.

Hvad kan der værer galt?



 
 
Harald (06-11-2006)
Kommentar
Fra : Harald


Dato : 06-11-06 17:05

"Carsten Mortensen" <cbm@valmo.dk> skrev i en meddelelse
news:454f21a0$0$14041$edfadb0f@dread15.news.tele.dk...
> Hej
>
> Jeg har problem med en SQL forespørgelse:
>
> Jeg får hele tiden fejl Type mismatch i expression når jeg forsøger at
> kører mit progem.
>
> Jeg har følgende kode:
>
> procedure TqrRapport7.Query7BeforeOpen(DataSet: TDataSet);
> begin
> With Query7 do
> Begin
> Close;
> SQL.Clear;
> SQL.Add('select * from slgdata');
> //SQL.Add('Where nr = "061010"'); Det kører hvis jeg bruger denne linie
> istedet for den under.
> SQL.Add('Where nr like ' + Rapport7.EDTnr7.Text);
> SQL.Add(' Order by loebenr');
> //Open;
> end;
> end;
> end.
>
> Det går galt når jeg ønsker at bruge nr (rapport7.edtnr.text) fra et edit
> felt fra en anden form, hvor brugeren skal kunne ændre på nr.
>
> hvis jeg bruger denne SQL.Add('Where nr = "061010"'); så virker det. men
> jeg vil godt kunne ændre på nr via min anden form.

Jeg er ikke sikker med kan LIKE ikke kun bruges på string typer, så hvis nr
er en tal type så er det nok derfor.

/HK



Ove Kjeldgaard (06-11-2006)
Kommentar
Fra : Ove Kjeldgaard


Dato : 06-11-06 19:54

"Carsten Mortensen" <cbm@valmo.dk> wrote:

>>> klip <<<
>
>Det går galt når jeg ønsker at bruge nr (rapport7.edtnr.text) fra et edit
>felt fra en anden form, hvor brugeren skal kunne ændre på nr.
>
>hvis jeg bruger denne SQL.Add('Where nr = "061010"'); så virker det. men
>jeg vil godt kunne ændre på nr via min anden form.
>
>Hvad kan der værer galt?
>

Det er mange år siden jeg har haft fat i SQL forspørgsler fra pascal.

Men mangler der ikke et par dobbelt-anførselstegn når du henter datoen fra edit
feltet?

Altså at linien:
SQL.Add('Where nr like ' + Rapport7.EDTnr7.Text);

Skal ændres til:
SQL.Add('Where nr like "' + Rapport7.EDTnr7.Text + '"');

For at have anførselstegnene som dennne linie:
SQL.Add('Where nr = "061010"');


--
Med venlig hilsen, Ove Kjeldgaard, nospam AT privat DOT dk
Natur og Friluftsliv: <http://hiker.dk>

Michael Zedeler (06-11-2006)
Kommentar
Fra : Michael Zedeler


Dato : 06-11-06 22:20

Ove Kjeldgaard skrev:
> "Carsten Mortensen" <cbm@valmo.dk> wrote:
>
>>>> klip <<<
>> Det går galt når jeg ønsker at bruge nr (rapport7.edtnr.text) fra et edit
>> felt fra en anden form, hvor brugeren skal kunne ændre på nr.
>>
>> hvis jeg bruger denne SQL.Add('Where nr = "061010"'); så virker det. men
>> jeg vil godt kunne ændre på nr via min anden form.
>>
>> Hvad kan der værer galt?
>>
>
> Det er mange år siden jeg har haft fat i SQL forspørgsler fra pascal.
>
> Men mangler der ikke et par dobbelt-anførselstegn når du henter datoen fra edit
> feltet?

Nej. Der mangler enkelt-anførselstegn. Dobbelt-anførselstegn er kun til
identifiers.

Mvh. Michael.
--
Which is more dangerous? TV guided missiles or TV guided families?
I am less likely to answer usenet postings by anonymous authors.
Visit my home page at http://michael.zedeler.dk/

Thomas Eg Jørgensen (09-11-2006)
Kommentar
Fra : Thomas Eg Jørgensen


Dato : 09-11-06 11:12


"Carsten Mortensen" <cbm@valmo.dk> skrev i en meddelelse
news:454f21a0$0$14041$edfadb0f@dread15.news.tele.dk...
> Jeg får hele tiden fejl Type mismatch i expression når jeg forsøger at
> kører mit progem.
>
> SQL.Add('Where nr like ' + Rapport7.EDTnr7.Text);

Et trick:

Query.SQL.clear;
Query.SQL.Add('SELECT Felt1, Felt2 FROM Table1');
Query.SQL.Add('WHERE Felt1 = :myparam');
Query.ParamByName('myparam').Value:=MyDelphiVariable;
Query.Open;
etc...

Prøv at bruge tal, tekst, dato, osv....du vil opdage en helt ny verden

Værd dog opmærksom på at ikke alle datatyper er kendte, men de mest gængse
er og du slipper for mange af den slags problemer du netop er løbet ind
i....

MVH
Thomas



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408914
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste