17. marts 2002 - 12:57Der er
25 kommentarer og 1 løsning
Løkke med data fra access
Hej eksperter..
Jeg har noget kode, som ikke er lykkedes for mig. Jeg skal lave en løkke der kører data ud fra en access-base.
Jeg har fået fat i følgende.. men det virker ikke helt. Den tager kun den første post i databasen. DB.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=imdb.mdb;Persist Security Info=False';
DB.Close;
DB.CommandText := 'Select * from buddies where user=''' + Split[1] + '''';
DB.Open;
while not DB.EOF do begin socket.SendText(#5 + '0666' + #5 + DB.Fields.FieldByName('buddy').AsString + #5);
var i:integer; begin DB.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=imdb.mdb;Persist Security Info=False';
DB.Close; DB.CommandText := 'Select * from buddies where user=''' + Split[1] + ''''; DB.Open;
for i := 0 to DB.RecordCount do begin socket.SendText(#5 + '0666' + #5 + DB.Fields.FieldByName('buddy').AsString + #5); DB.Next; end; end;
men det er en ret dum måde at gøre det på. Det ville være smarte hvis du først gemte de buddies som var det i en list, og så sendte hele listen på engang istedet for at belaste socket forbindelsen med det loop.
if Split[0] = '0665' then begin DB.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=imdb.mdb;Persist Security Info=False';
DB.Close; DB.CommandText := 'Select * from buddies where user=''' + Split[1] + ''''; DB.Open;
for ii := 0 to DB.RecordCount do begin socket.SendText(#5 + '0666' + #5 + DB.Fields.FieldByName('buddy').AsString + #5); DB.Next; end; end;
Clienten der modtager:
if Split[0] = '0666' then begin showmessage('Du modtager en adresseliste fra server'); ListItem := form1.ListView1.Items.Add; ListItem.ImageIndex := 0; ListItem.Caption := Split[1]; end;
if Split[0] = '0666' then begin showmessage('Du modtager en adresseliste fra server'); St:=Tstringlist.create; st.text := split[1]; for i := 0 to st.count-1 do begin ListItem := form1.ListView1.Items.Add; ListItem.ImageIndex := 0; ListItem.Caption := St.strings[I]; end; st.free; end;
hehe ja, men 399$ er også lidt mere end jeg vil gi for den upgrade, specielt når jeg ikke har noget desideret at bruge de nye features til .. tror jeg venter en version mere :)
Synes godt om
Ny brugerNybegynder
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.