BGMMedlem sedan maj 200113 inlägg Hej och tack Staffan jag fick följande kod av LarsG i WebForum SQL men när jag lägger in den i SQL Componenten, Delphi får jag den inte att fungera Alltså (:D) fungerar inte. Jag har provat med =:D och LIKE:D utan att lyckas. Är det någon som begriper bättre!
BGM
SELECT foo
FROM bar
WHERE
(:D)
BETWEEN
foo and baz
Skiver jag så här fungerar koden:
SELECT foo
FROM bar
WHERE
14
BETWEEN
foo and baz
Men jag vill kuna välja vilket värde.
Här är koden för knappen.:
procedure TForm1.Button1Click(Sender: TObject);
var
D : Smallint ; // D Nr
begin
Query1.Close;
D:=StrToInt(Edit1.Text);
Query1.Params[0].AsInteger := D;
Query1.Open;
end;
Jag har faktiskt aldrig använt mig av param funktionen på TQuery utan brukar lägga in allt i TQuery.SQL.
Alltså nåt sånt här:
aQuery := TQuery.Create(self);
aQuery.SQL.Add('select foo from bar where ');
aQuery.SQL.Add(Edit1.text);
aQuery.SQL.Add(' between foo and baz');
aQuery.Open;
BGMMedlem sedan maj 200113 inlägg Hej
Jag har skrivit in Din kod under en knapp och fått OK, men när jag kör vill SQL componenten ha kod i SQL - vilken.
Jag använder Paradox och BDS
På något sätt har jag inte fårr grepp om hur du vill att det skall se ut
BGM
Du måste koppla aQuery till en databaskomponent som i sin tur kopplar till din paradoxdatabas.
TQuery är till för att köra via BDE (Borland Database Engine), vilket kräver att du lägger upp ett bdealias i bde administrator. Du hittar alla bdegrejorna under BDE-fliken på verktygspaletten.
Om du vill köra via ADO så använder du dig av motsvarande ADO-komponenter osv.
Vilken version av Delphi använder du dig av?
Mitt exempel är för Delphi 7.
BGMMedlem sedan maj 200113 inlägg Hej
Det du skriver har jag nog grep om, jag har skapat flera SQL-frågor genom att lägga dessa i TQuery´SQL plus en kod i knapen.
Vad jag inte förstår är behövs ingen TQuery eller ingen kod i SQL.
Du jar inget enkelt exempel där jag kan se hur Du menar.
Själv använder Delphi 6.
BGM
Tyvärr så har jag inget lite exempel som jag kan skicka iväg men jag ska försöka förklara vad jag menar.
Med aQuery := TQuery.Create(Self) så skapar jag ett TQueryobjekt. Man kan lika gärna placera ut en TQuery på formuläret och använda sig av den istället.
Med SQL.Add så lägger man till sql-koden i aQuery. För att rensa bort det som ligger i SQL så använder man SQL.Clear.
aQuery.Open kör frågan och retunerar resultatet. Om frågan inte ska retunera något, man kanske gör en insert så är det bättre att köra execSQL.
Följande exempelkod fungerar mot SQL Server.
aQuery := TQuery.Create(Nil);
aQuery.Database := MyDatebase; //Ansluter den mot min databaskomponent.
aQuery.SQL.Add('select * from sysobjects');
aQuery.Open;
While not aQuery.Eof do
ShowMessage(aQuery['name']);
aQuery.Close;
Hoppas att detta hjälper dig en bit på vägen.