Nu kender jeg ikke Borlands implementering af DB objekter, men måske du kunne gøre noget lign.:
DataMod->Query->SQL->Clear(); DataMod->Query->SQL->Add("SELECT COUNT(*) FROM ASSISTENT AS CNT"); DataMod->Query->Open(); int nCount = DataMod->Query->FieldByName("CNT")->AsInt; // Jeg ved ikke om du skal bruge AsInt, men den hedder sikkert noget lignende...
Hvorfor: DataMod->Query->SQL->Add("SELECT COUNT(*) FROM ASSISTENT AS :CNT"); ???
Du skal vel også kalde fx Open, det gør du ikke...
Virker følgende ikke?
DataMod->Query->SQL->Clear(); DataMod->Query->SQL->Add("SELECT COUNT(*) FROM ASSISTENT AS CNT"); DataMod->Query->Open(); int nCount = DataMod->Query->FieldByName("CNT")->AsInteger;
JPK: Din kode virker ikke nej! Den siger samme fejl! :o(
Jeg prøvede at sætte : foran CNT, da man sætter : foran variabler som bliver tildelt en værdi med DataMod->Query->ParamByName("CNT") = "FISK"; Eller whatever...
Men det virker desværre ikke din kode, det virker som om den ikke kender Feltet CNT... :o(
EXECSQL er til ikke-visuelle queries, f.eks. INSERT, UPDATE og DELETE. Open() er til visuelle quieries f.eks. SELECT. EXECSQL behandler alle records der passer til queryen og returnere så. Open() laver en cursor og aflevere først (den næste) record ved Next(); (Svarende til FETCH.)
Jeg bruger også en Open(), det var bare en mindre fejl i resten! :o)
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.