Avatar billede kar Nybegynder
15. april 2002 - 14:38 Der er 1 kommentar og
1 løsning

returnering af en pris

Hej!
Jeg har to tabeller i interbase
1 tabel= navn(Udlejning)
(primærnøgle) Hjemmeplejerid
              Prisprtime

2 tabel navn(Hjemme)
(primærnøgle) Udlejning
(fremmenøgle) Hjemmeplejerid

Jeg er interesseret i at få returneret en prisprtime for hver udlejning.
Hvordan får jeg det flettet sammen så jeg får en liste med prisen for hver udlejning når oplysningerne kommer fra to tabeller?

Min kode ser ud som flg (men virker ikke)

list<float> MUdlejning::Hentprisen (String Udlejningsnr)
{
  list<float> Prisliste;
  DataMod->Udlejning->Filtered = true;
  DataMod->Udlejning->Filter  = AnsiString("Udlejningsnr = ") + AnsiString(Udlejningsnr);
  DataMod->Udlejning->Active = true;
  DataMod->Udlejning->Active = false;
  float Prisprtime;
  while (!DataMod->Udlejning->Eof)
  {
  Prisprtime = DataMod->Udlejning->FieldByName("Prisprtime")->AsString.ToDouble();

  Prisliste.push_back(Prisprtime);
    DataMod->Udlejning->Next();
  }
  DataMod->Udlejning->Active = false;
  return Prisliste;
  }

Jeg vil være meget taknemmelig for hjælp. 
Der er brug for flere oplysninger sår jeg gerne tilrådighed.
De bedste hilsner fra karina :-))
Avatar billede laffe Nybegynder
16. april 2002 - 07:50 #1
Følgende ítererer gennem begge tabeller for at finde PrisPrTime for hver Udlejning.

Du kunne måske overveje at lave en Query istedet for.


  DataMod->Udlejning->Filtered = false;
  DataMod->Udlejning->Active = true;
  float Prisprtime;

  while (!DataMod->Hjemme->Eof)
  {
    Udlejning    = DataMod->Hjemme->FieldByName("Udlejning")->AsInteger;
    HjemmeplejeID = DataMod->Hjemme->FieldByName("HjemmeplejeID")->AsInteger;

   
    DataMod->Udlejning->Active  = true;
    DataMod->Udlejning->Filtered = false;
    DataMod->Udlejning->Filter  = "HjemmeplejeID = " + IntToStr(HjemmeplejeID);
    DataMod->Udlejning->Filtered = true;
   
    while (!DataMod->Udlejning->Eof)
    {
      Prisprtime = DataMod->Udlejning->FieldByName("Prisprtime")->AsString.ToDouble();
         
      DataMod->Hjemme->Next();
    }
    DataMod->Udlejning->Next();
Avatar billede kar Nybegynder
16. april 2002 - 16:25 #2
tak for hjælpen hilsne 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