webForumDet fria alternativet

Angående Access och Delphi

Programmeringur Programmering - Övrigt

2 svar · 187 visningar · startad av Xepp

Medlem sedan nov. 200327 inlägg
Frågan#1

Håller på att göra ett program och ska hämta värden ifrån en databas men får fel i denna kod:

procedure TfrmMain.mHiddenDummyClick(Sender: TObject); 
var 
Varde : integer; 
URL : WideString; 
begin 
Varde := TComponent(Sender).Tag; 

ADOQuery2.SQL.Add('Select * from TblFav'); 
ADOQuery2.Open; 
ADOQuery2.SQL.Text := Format('Select Address from TblFav where id = %d', [Varde]); 
ADOQuery2.ExecSQL; 
URL := ADOQuery2.FieldByName('Address').AsString; 
ADOQuery2.Close; 

moBrowser.Navigate(WideString(URL)); 
edtAddress.Text := URL; 
end;

Jag ska alltså koppla upp mig mot min Access databas och hämta ett värde under fältet Address där id är Varde.
Allt funkar med Varde och så. Det som jag får fel på är denna rad:

URL := ADOQuery2.FieldByName('Address').AsString;

Programet klagar på att fältet Address inte finns, men det gör det. Jag tror inte att det ska vara den där kodraden, utan jag måste på något sätt byta ut

 ADOQuery2.FieldByName('Address').AsString;

mot något annat som ger värdet som hämtas i

ADOQuery2.SQL.Text := Format('Select Address from TblFav where id = %d', [Varde]);

Vad tror ni är fel och hur löser jag det?

Väldigt tacksam för svar!

.:: Sebbe

Medlem sedan mars 20041 inlägg
#2

Kan kanske bero på att ordet "adress" är felstavat om det inte är samma stavning i databasen förstås

Medlem sedan nov. 2003310 inlägg
#3

Vad jag kan se så fyller

ADOQuery2.SQL.Add('Select * from TblFav'); 
ADOQuery2.Open;

ingen funktion alls.

Felet i din kod är att du måste köra Open istället för ExecSQL. Om man kör ett Select statement så måste man använda open eller sätta active till true.
OBS. kom ihåg att köra close.

/Ante S

128 ms totalt · 3 externa anrop · v20260731065814-full.b746b907
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)