Avatar billede mulle_hansen Nybegynder
27. februar 2002 - 08:07 Der er 8 kommentarer og
1 løsning

DBGrid til Streng

Hvordan får jeg indholdet af en bestemt kolonne i et DBGrid, listet over i en streng?
Avatar billede morten_s Nybegynder
27. februar 2002 - 08:13 #1
gennemløber det dataset som dit dbgrid peger på og læser det over
i din streng


procedure TForm1.Button1Click(Sender: TObject);
var
  MinStreng : String;
begin
  MinStreng := '';
  with DataSource1.DataSet do
  begin
    first;
    while not Eof do
    begin
      MinStreng := MinStreng + FieldByName('MitKolonneNavn').AsString;
      Next;
    end;
  end;
end;
Avatar billede mulle_hansen Nybegynder
27. februar 2002 - 08:19 #2
Dvs. jeg slet ikke behøver en skide DBGrid?
Avatar billede morten_s Nybegynder
27. februar 2002 - 08:21 #3
Ikke med mindre du vil se dine data.

du har vel data i en tabel eller et query, gør følgende

procedure TForm1.Button1Click(Sender: TObject);
var
  MinStreng : String;
begin
  MinStreng := '';
  with Table1 do  <----- RET HER TIL DIN TABLE ELLER QUERY
  begin
    first;
    while not Eof do
    begin
      MinStreng := MinStreng + FieldByName('MitKolonneNavn').AsString;
      Next;
    end;
  end;
end;
Avatar billede mulle_hansen Nybegynder
27. februar 2002 - 08:23 #4
fair nok! Jeg henter data via et Query, og jeg syns det var bøvlet at skulle ha' DBGrid for at øge nogle felter igennem... :)
Takker
Avatar billede morten_s Nybegynder
27. februar 2002 - 08:25 #5
Hvis du lige har sagt open til dit Query kan du
sparre linien med First, da dit dataset altid
står ved første post efter en open
Avatar billede mulle_hansen Nybegynder
27. februar 2002 - 08:32 #6
Jeg stødte lige på et problem med følgende:

procedure TMainForm.Button1Click(Sender: TObject);
var
  Str: String;
begin
  with Query do
  begin
    with SQL do
    begin
      Clear;
      Add('SELECT * FROM users');
      Add('WHERE list LIKE :soegparam');
      Query.ParamByName('soegparam').Value := '%20202%';
    end;
    Open;
  end;
  Str := '';
  with DataSource.DataSet do
  begin
    while not Eof do
    begin
      Str := Str+FieldByName('id').AsString+',';
      Next;
    end;
  end;
  ShowMessage(Str);
end;

Jeg får en stor, fæl fejl "Access Violation at address blabla:blabla"
Avatar billede morten_s Nybegynder
27. februar 2002 - 08:36 #7
tja på hvilken linie sker det, kan du ikke debugge dig frem til det rigtige sted ?

procedure TMainForm.Button1Click(Sender: TObject);
var
  Str: String;
begin
  with Query do < QUERY ER VEL NAVNET PÅ KLASSEN; OG IKKE PÅ DIT QUERY ??
  begin
    with SQL do
    begin
      Clear;
      Add('SELECT * FROM users');
      Add('WHERE list LIKE :soegparam');
      Query.ParamByName('soegparam').Value := '%20202%';
    end;
    Open;
  end;
  Str := '';
  with DataSource.DataSet do <--HER SKRIVER DU DET RIGTIGE NAVN PÅ DIT QUERY F:EKS QUERY1 ISTEDET FOR DATASOURSE.DATASET
  begin
    while not Eof do
    begin
      Str := Str+FieldByName('id').AsString+',';
      Next;
    end;
  end;
  ShowMessage(Str);
end;
Avatar billede mulle_hansen Nybegynder
27. februar 2002 - 08:38 #8
takker - nu virker det :)
Avatar billede morten_s Nybegynder
27. februar 2002 - 08:38 #9
ok
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