Avatar billede php_teddy Nybegynder
17. januar 2002 - 10:42 Der er 22 kommentarer og
2 løsninger

While virker ikke

Hvad er der galt her den tilføjer ikke noget i min memo1

with DataSource3.DataSet do
begin
First;
  while not Eof do
  begin
    memo1.Lines.Add(FieldByName(\'besked\').AsString);
      end;
    Next;
    end;
mysqlquery3.Active := false;



end;

Avatar billede morten_s Nybegynder
17. januar 2002 - 10:44 #1
din next er kommet et hak for langt ned :)
Avatar billede snowball Novice
17. januar 2002 - 10:44 #2
Prøv med nedenstående:

with DataSource3.DataSet do begin
  First;
  While not Eof do begin
    memo1.Lines.Add(FieldByName(\'besked\').AsString);
    Next;
  end;
mysqlquery3.Active := false;

Snowball
Avatar billede morten_s Nybegynder
17. januar 2002 - 10:44 #3
with DataSource3.DataSet do
begin
  First;
  while not Eof do
  begin
    memo1.Lines.Add(FieldByName(\'besked\').AsString);
    Next;
  end;
  mysqlquery3.Active := false;
end;
Avatar billede torbenthyregod Nybegynder
17. januar 2002 - 10:45 #4
with DataSource3.DataSet do
begin
  First;
  while not Eof do
  begin
    memo1.Lines.Add(FieldByName(\'besked\').AsString);
    Next;
  end;
  mysqlquery3.Active := false;
end;
Avatar billede php_teddy Nybegynder
17. januar 2002 - 10:47 #5
procedure TForm2.Timer1Timer(Sender: TObject);
begin
mysqlquery3.SQL.Text := \'select * from CU where til = \'\'\'+form1.DataSource1.DataSet.FieldByName(\'user_id\').AsString+\'\'\' order by msg_id\';
mysqlquery3.Active := true;
with DataSource3.DataSet do
begin
First;
  while not Eof do
  begin
    memo1.Lines.Add(FieldByName(\'besked\').AsString);
    Next;
      end;
    end;
mysqlquery3.Active := false;
Timer1.Interval := 500000;


det er den hele kode og det virker stadig ikke
Avatar billede martinlind Nybegynder
17. januar 2002 - 10:49 #6
Der er det galt at dit dataset er TOMT og derfor er EOF TRUE og du kommer aldrig ind i din WHILE løkke, hvis du kom det ville du få den første record en million/milliard gange da din next som sagt står det forkerte sted.

/Martin
Avatar billede snowball Novice
17. januar 2002 - 10:49 #7
Og du er sikker på der er noget data at skrive ud !?

Prøv og lav et breakpoint på linien

memo1.Lines.Add(FieldByName(\'besked\').AsString);

og kør programmet igen. Prøv så og hold musen hen over .AsString og se om der står noget data i hinten der kommer frem !

Snowball
Avatar billede snowball Novice
17. januar 2002 - 10:51 #8
Og hvis du ikke kommer ned til breakpoint\'et, så er det fordi at der som sagt ikke er noget data at skrive ud ;)

Snowball
Avatar billede php_teddy Nybegynder
17. januar 2002 - 10:51 #9
hmmm der kommer sq ikke data....

Timer1.Interval := 100; hvor langtid er det ?!
Avatar billede snowball Novice
17. januar 2002 - 10:54 #10
10 gange i sekundet !

Snowball
Avatar billede martinlind Nybegynder
17. januar 2002 - 10:57 #11
Hvis nu du var lidt smart så testede du dit SQL statement i SQLExploren, så ved du hvad du får af resultat
Avatar billede php_teddy Nybegynder
17. januar 2002 - 11:15 #12
ok hvordan beder jeg den om at starte en

Timer1.Enabled := true;

når et vindu poper frem
Avatar billede martinlind Nybegynder
17. januar 2002 - 11:23 #13
du sætter linen ind i formen\'s OnShow eller OnCreate eller OnActivate event\'s, men hvis det er for at fylde en combobox, hvorfor så bruge en timer ??
Avatar billede php_teddy Nybegynder
17. januar 2002 - 11:25 #14
nej nej det er til at opdater meno1 som er i en database....
Avatar billede php_teddy Nybegynder
17. januar 2002 - 11:27 #15
kan man lave en while i en while
Avatar billede martinlind Nybegynder
17. januar 2002 - 11:33 #16
Ja, sagtens

VAR
  Stop1, Stop2 : Boolean;


Stop1 := FALSE;
Stop2 := FALSE;

while not stop1 do
while not stop2 do
  begin
    Stop1 := TRUE;
    Stop2 := TRUE;
  end;
Avatar billede php_teddy Nybegynder
17. januar 2002 - 11:39 #17
ok.... vent jeg opretter en ny...så lav det lig der inde... eller du kan bare lave det her...så sætter jeg flere point på

Ok jeg skal først skal jeg hente

mysqlquery3.SQL.Text := \'select * from CU where til = \'\'\'+form1.DataSource1.DataSet.FieldByName(\'user_id\').AsString+\'\'\' order by msg_id\';
mysqlquery3.Active := true;
with DataSource3.DataSet do
begin
First;
  while not Eof do
  begin
    memo1.Lines.Add(FieldByName(\'besked\').AsString);
    Next;
      end;
    end;


og det der står i FieldByName(\'fra\').AsString skal være en trigger til

mysqlquery5.sql.text := \'select * from chat_user where user_id = \'\'\'+FieldByName(\'besked\').AsString+\'\'\';

også skal den skrive det user_name den har fundet i mysqlquery5 (datasource4) og texten der hedder besked fra datasource3 

så det kommertil at se sådan ud...

user_name -> besked (på samme linie)
Avatar billede martinlind Nybegynder
17. januar 2002 - 11:48 #18
Det hedder Master/Detail

Og med mindre du skal bruge DataAware comp. såsom DBMemo og DBEdit behøver du ikke bruge Datasource comp. du kan bruge din Query direkte

/Martin
Avatar billede php_teddy Nybegynder
17. januar 2002 - 12:16 #19
ok hvordan ???!
Avatar billede martinlind Nybegynder
17. januar 2002 - 12:19 #20
mysqlquery5.First
mysqlquery5.FieldByName()
mysqlquery5.Open;
mysqlquery5.Close;
mysqlquery5.Next


osv.
Avatar billede php_teddy Nybegynder
17. januar 2002 - 12:44 #21
procedure TForm2.Timer1Timer(Sender: TObject);
begin
mysqlquery3.SQL.Text := \'select * from CU where til = \'\'\'+form1.DataSource1.DataSet.FieldByName(\'user_id\').AsString+\'\'\' order by msg_id\';
mysqlquery3.Active := true;
memo1.Lines.Clear;
with DataSource3.DataSet do
begin
First;
  while not Eof do
  begin
  mysqlquery5.sql.text := \'select * from tinychat_user where user_id = \'\'\'+FieldByName(\'fra\').AsString+\'\'\'\';
  mysqlquery5.Active := true;
  with Mysqlquery5.DataSetField do
begin
mysqlquery5.First;
  while not Eof do
  begin
    memo1.Lines.Add(\'Fra\'+mysqlquery5.FieldByName(\'user_name\').AsString+\'->\'+ FieldByName(\'besked\').AsString);
    Next;
    mysqlquery5.Next;
    mysqlquery5.Open;
mysqlquery5.Close;
      end;
      end;
      end;
    end;
mysqlquery3.Active := false;
Timer1.Interval := 4000;

mysqlquery4.SQL.Text := \'select * from CU where fra = \'\'\'+form1.DataSource1.DataSet.FieldByName(\'user_id\').AsString+\'\'\' order by msg_id\';
mysqlquery4.Active := true;
memo2.Lines.Clear;
with DataSource2.DataSet do
begin
First;
  while not Eof do
  begin
    memo2.Lines.Add(FieldByName(\'besked\').AsString);
    Next;
      end;
    end;
Timer1.Interval := 4000;



end;

+mysqlquery5.FieldByName(\'user_name\').AsString+\'->\'+ FieldByName

den mener der er fejl her men jeg er SIKKER på at row user_name findes
Avatar billede php_teddy Nybegynder
17. januar 2002 - 12:47 #22
fandt fejlen
Avatar billede php_teddy Nybegynder
17. januar 2002 - 13:09 #23
hmmmtak for hjælpen
Avatar billede php_teddy Nybegynder
17. januar 2002 - 13:10 #24
.. opretter lig en til ang mysql
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