Avatar billede kar Nybegynder
01. april 2002 - 16:54 Der er 8 kommentarer og
1 løsning

filter søgning

Hej!

Jeg er ved at lave et program med en database på hvor jeg vha c++ skal søge efter
Stationsnavn fra en tabel og fra anden tabel skal jeg søge efter ambulanceid og om ambulancen er ude hjemme.
Mit program ser ud som flg:
list<ambulanceudehjemme> MAmbulance::Hentambula(String ambu)
{
  list<ambulanceudehjemme> ambulanceliste;
  DataMod->Ambulance->Filtered = true;
  DataMod->Ambulance->Filter= String ("Hjemmeud  ='Hjemme'  ");
  DataMod->Ambulance->Filter =(String ("tilhorendestation =  ") + String (ambu));
  //DataMod->Ambulance->Filter= String ("Hjemmeud  ='Hjemme'  ");
  DataMod->Ambulance->Active = false;
  DataMod->Ambulance->Active = true;
  string Ambulanceid;
  string Hjemmeud;
  while (!DataMod->Ambulance->Eof)
  {
  Ambulanceid = DataMod->Ambulance->FieldByName("Ambulanceid")->AsString.c_str();
  Hjemmeud = DataMod->Ambulance->FieldByName("Hjemmeud")->AsString.c_str();
  ambulanceliste.push_back(ambulanceudehjemme(Ambulanceid,Hjemmeud));
  DataMod->Ambulance->Next();
  }
  DataMod->Ambulance->Active = false;
  return ambulanceliste;
}

mit problem er da det kun er det første filter som virker og hvis jeg flyttet det virker det andet filter, men jeg vil gerne have dem til at virke samtidig - kan det lade sig gøre eller er jeg helt forkert på den?

Jeg henter funktionen vha af flg sætning:
list<ambulanceudehjemme>  listen = Ambulancen->Hentambula( ListBox3->Items->
Strings[ListBox3->ItemIndex]);

list<ambulanceudehjemme>::iterator i4;


for (i4 = listen.begin(); i4 !=listen.end(); i4++)

{
string tempambulanceid =(*i4).HentAmbulanceid().c_str();

string tempHjemmeud = (*i4).HentHjemmeudrykning().c_str();
karina->Items->Add((tempambulanceid + ' ' + tempHjemmeud).c_str());
}
}

jeg håber virkelig der er nogen som kan hjælpe mig da jeg er ved at blive ret desperat :-))
De bedste hilsner fra karina
Avatar billede mobisend.dk Nybegynder
01. april 2002 - 22:03 #1
OK det her kan jeg ikke lige svare på - holder mig til ASP :0)

Held og lykke...
Avatar billede laffe Nybegynder
01. april 2002 - 22:28 #2
Jeg kan kun se, at du laver en filter operation. Eller mener du at du kun kan kalde koden Een gang, altså at det kun virker første gang ?
Avatar billede mobisend.dk Nybegynder
01. april 2002 - 22:29 #3
held og lykke....
Avatar billede laffe Nybegynder
01. april 2002 - 22:30 #4
Man kan jo altid prøve :-)
Avatar billede jpk Nybegynder
02. april 2002 - 09:10 #5
Har du prøvet at kombinere dem?
Fx:

DataMod->Ambulance->Filter = String("Hjemmeud  ='Hjemme', tilhorendestation = ")  + String (ambu);
Avatar billede jpk Nybegynder
02. april 2002 - 09:15 #6
Eller brug AND imellem dem, i stedet for , (komma)
Avatar billede kar Nybegynder
02. april 2002 - 16:32 #7
Hej Jpk og andre!
Mange tusind tak for svaret - den nederste kombination med at kombinerer udsagnene virker perfekt...
Jeg vil lige høre om der er nogen måde hvorpå det er muligt at få udskrevet istedet for ambulanceid antal ambulancer for hver station?
Jeg har kigget på noget der hedder flg:

count(iterator start, iterator stop, target value, counter), men om det præcist er det der skal til og hvordan er jeg ikke helt  klar over.
Tusind tak for hjælpen.
Hilsner karina
Avatar billede jpk Nybegynder
03. april 2002 - 08:47 #8
Antallet af elementer i listen kan du få ved fx:

int nElems = listen.size();
Avatar billede kar Nybegynder
03. april 2002 - 17:11 #9
tusind tak karina
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