Avatar billede iver25 Nybegynder
03. april 2002 - 17:57 Der er 16 kommentarer og
1 løsning

ændring af indhold i DBGrid

Jeg er ved at lave en filmdatabase, som bliver vist i en DBGrid. Jeg vil gerne kunne sortere indholdet af DBGriden efter f.eks titlen på filmen. Min SQL-sætning ser således ud:

'Select * from film order by filmnavn'

Men hvordan får jeg resultatet af denne sætning vist i mit DBGrid??
Avatar billede martinlind Nybegynder
03. april 2002 - 18:02 #1
På samme måde som alle andre resultater, du sætter gridens datasource.
Avatar billede iver25 Nybegynder
03. april 2002 - 18:03 #2
Hvordan gør jeg det?
Avatar billede martinlind Nybegynder
03. april 2002 - 18:05 #3
MyDBGrid.DataSource.DataSet := MyQuery;
Avatar billede iver25 Nybegynder
03. april 2002 - 18:05 #4
Er MyQuery en TQuery?
Avatar billede martinlind Nybegynder
03. april 2002 - 18:06 #5
Yes
Avatar billede iver25 Nybegynder
03. april 2002 - 18:10 #6
Jeg har skrevet følgende:

var
  query : TQuery;
begin
  query.Close;
  query.SQL.Clear;
  query.SQL.Add('Select * from film order by filmnavn');
  query.ExecSQL;
  DBGridFilm.datasource.DataSet := query;


Men jeg får en "access violation"
Avatar billede martinlind Nybegynder
03. april 2002 - 18:13 #7
var
  query : TQuery;
begin
  query := TQuery.Create(Self);
  query.SQL.Text := 'Select * from film order by filmnavn';
  query.Open;
  DBGridFilm.datasource.DataSet := query;
end;
Avatar billede iver25 Nybegynder
03. april 2002 - 18:17 #8
Den fejler ved query.open, med "Cannont load an ÍDAPI service library"
Avatar billede martinlind Nybegynder
03. april 2002 - 18:35 #9
begin
  with DBGridFilm.datasource.DataSet as TQuery do
  begin 
      Active := FALSE;
      SQL.Text := 'Select * from film order by filmnavn';
      Active := TRUE;
  end;
end;
Avatar billede iver25 Nybegynder
03. april 2002 - 18:37 #10
Jeg får desværre samme fejl.
Avatar billede iver25 Nybegynder
03. april 2002 - 18:39 #11
Sorry, det er ikke den samme fejl. Den siger "Invalid class typecast"
Avatar billede iver25 Nybegynder
03. april 2002 - 18:40 #12
På denne her linie

with DBGridFilm.datasource.DataSet as TQuery do
Avatar billede martinlind Nybegynder
03. april 2002 - 18:43 #13
Jeg ved ikke hvordan din kode ser ud, og hvilken database-engine du bruger, men du kan prøve at smide en TQuery comp. på din form, bruger du en ttable comp. til din grid ??, hvis du gør så skift den til en tquery med sql.text := "select * from <filmtable>"

/Martin
Avatar billede iver25 Nybegynder
03. april 2002 - 18:46 #14
Jeg har en TQuery comp. på min form. Grid'en er lavet ud fra en TDataSource, som får data fra en TTable.
Avatar billede martinlind Nybegynder
03. april 2002 - 18:48 #15
så skift din ttable til en tquery og gør som jeg skrev til sidst
Avatar billede iver25 Nybegynder
03. april 2002 - 18:52 #16
På TDatasource kan jeg ikke vælge TQuery i stedet for TTable
Avatar billede martinlind Nybegynder
03. april 2002 - 18:59 #17
Hvis du bruger std. delphi comp. og du har en delphi version der understøtter database, så gør du som jeg skrev og skrifter din TTable comp. ud med en TQuery comp.

Eller også går du ind og får dig en lur !!
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