Avatar billede peee Nybegynder
16. april 2002 - 16:33 Der er 5 kommentarer og
1 løsning

sql trække to værdier fra hinanden

Hej!
Jeg skal trække to felter fra hinanden og har prøvet flg kode, men den virker ikke - er der nogle som kan hjælpe med hvad jeg har gjort galt??
bool MUdlejning::dato(int FindUdlejning)
{
DataMod->Query->Close();
DataMod->Query->SQL->Clear();
DataMod->Query->SQL->Add("select Extract (Slutdato FROM Startsdato)");
DataMod->Query->SQL->Add("from Udlejning where Udlejningsnr =:UD");
DataMod->Query->ParamByName("Ud")->AsString = FindUdlejning;

DataMod->Query->Open();
DataMod->Query->First();
if(DataMod->Query->Eof)
  return false;
Startdato  = DataMod->Query->FieldByName("Startdato")->AsString.c_str();
Slutdato  = DataMod->Query->FieldByName("Slutdato")->AsString.c_str();



return true;
}

På forhånd tusind tak for hjælpen.
Hilsner karina :-)))
Avatar billede terry Ekspert
16. april 2002 - 17:15 #1
DataMod->Query->SQL->Add("select Slutdato - Startsdato ");
DataMod->Query->SQL->Add("from Udlejning where Udlejningsnr =:UD");

What database are you using?
In Access there is a dataDiff function to calculate the difference.
Avatar billede proaccess Nybegynder
17. april 2002 - 08:05 #2
Uden at kende det "sprog", du har skrevet dit Script i, vil jeg påpege:

1) Datatype for FindUdlejning (angives til int i starten men bruges senere som String)
2) Definering at Start- og Slutdato, er dette globale variable? (Det går jeg ud fra)
3) I din SELECT finder du startSdato og ikke en Startdato...
4) Rækkefølgen af ting, skal dit script ikke kende værdien af UD inden denne bruges...

Alt i alt:

bool MUdlejning::dato(String FindUdlejning)
{
  DataMod->Query->Close();
  DataMod->Query->SQL->Clear();
  DataMod->Query->ParamByName("Ud")->AsString = FindUdlejning;
  DataMod->Query->SQL->Add("SELECT Slutdato, Startdato FROM Udlejning WHERE Udlejningsnr =:UD");
  DataMod->Query->Open();
  DataMod->Query->First();
  if(DataMod->Query->Eof)
    return false;
  Startdato  = DataMod->Query->FieldByName("Startdato")->AsString.c_str();
  Slutdato  = DataMod->Query->FieldByName("Slutdato")->AsString.c_str();
  return true;
}
Avatar billede peee Nybegynder
17. april 2002 - 20:07 #3
Hej!
Jeg har ikke rigtig se hvor du trækker værdierne fra hinanden? Jeg bruger Interbase. Mit sprog skulle gerne være C++, da faget jeg tager hedder "programmering af store systemer". Jeg kan udemærker få det til at virke hvis jeg vælger en enkelt, men mit problem er hvordan jeg trækker de to datoer (felter) fra hinanden?
hilsner karina
Avatar billede terry Ekspert
17. april 2002 - 20:13 #4
select Slutdato - Startsdato
Avatar billede terry Ekspert
17. april 2002 - 20:29 #5
In Access I can get Slutdato - Startsdato to work but not in SQL Server. How you do this in Interbase is anyones guess! There must be various functions build into Interbase to help you do this.
Avatar billede terry Ekspert
18. april 2002 - 19:33 #6
mange tak :o)
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
Computerworld tilbyder specialiserede kurser i database-management

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