Avatar billede fagghunter Nybegynder
07. november 2006 - 13:37 Der er 2 kommentarer og
1 løsning

Sql add virker ikke

Ey!

Jeg har et problem med SQL (Paradox 5 eller hva det hedder) i Delphi, problemet er at jeg skal løbende opdaterer SQL Query1 til forskellige procedurer i mit program:



procedure TForm6.Fornavn1Click(Sender: TObject);
var SoegeNoegle : string;
begin
SoegeNoegle:=
    InputBox('Søgenøgle til ny søgning','Fornavn','');
    Query1.Close;
    Query1.Prepare;
    Query1.SQL.Clear;
        if (Skelne = 0) then
        begin
        Query1.SQL.Add('SELECT * FROM Elever WHERE LOWER(Efternavn) LIKE :EfterStr AND LOWER(Fornavn) LIKE :ForStr');
        Query1.Params[1].AsString:=Lowercase('%'+SoegeNoegle+'%');
        end
        else
        begin
        Query1.SQL.Add('SELECT * FROM Elever WHERE Efternavn LIKE :EfterStr AND Fornavn LIKE :ForStr');
        Query1.Params[1].AsString:='%'+SoegeNoegle+'%';
        end;
        Query1.Params[0].AsString:='%';
    Query1.Open;
    Query2.Open;
end;


Det er en database med gymnasieelever som kan søges i, og her vil jeg søge i fornavn. Man skal have mulighed for at vælge om programmet skal skelne ml. store og små bogstaver eller ej, og problemet er at når den skal det så skal der ændres i Query så det bliver Lowercase begge steder...

Jeg får fejlen:
"Query1: Not SQL statement available"

Det er 2 Query's fordi det er en sammensat master tingest, så der er en oversigt og en hvor man redigerer i, og den søger i oversigten.
Avatar billede fagghunter Nybegynder
07. november 2006 - 13:45 #1
virker nu, prepare fvar det der fuckede..
Avatar billede martinlind Nybegynder
07. november 2006 - 15:27 #2
Query1.Close;
    Query1.Prepare;  <--- Skal ikke køres her, efter du har sat sql og det er med parametre så kører du prepare, sætter dine params, og så er du klar til execute/open
    Query1.SQL.Clear;
Avatar billede jensfudge Nybegynder
09. november 2006 - 08:34 #3
Og så skal du iøvrigt kun kalde prepare én gang du har sat SQL-strengen op. Det er en god ide at kalde prepare på følgende måde:
if not Query1.prepared then
  Query1.prepare

Så kører det for dig
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