Avatar billede Slettet bruger
29. november 2000 - 09:27 Der er 2 kommentarer og
1 løsning

Fra BIT til INT

Jeg arbejder med et program der skal kalde en SQL database og derefter overførere visse værdier til en konstruktør.

Problemet er at nogle af værdierne ligger som BIT i databasen (MS SQL 2000).

Jeg har prøvet med både AsInteger og AsBoolean men ingen af konveteringerne er lovlige.

Help!

Eksempel:

var=Database->Qfelt->FieldByName(\"feltneavn\")->AsBoolean;
var2=Database->Qfelt->FieldByName(\"id\")->AsInteger;
Avatar billede moykal Nybegynder
29. november 2000 - 10:04 #1
Hvad med at anvende en VARIANT - hvis du har ATL installeret, så¨anvend <atlbase.h> (tror jeg) hvor CComVariant er defineret. Når jeg er gået på SQL-2000 gør noget a la:

int iValue = spRecordSet->Fields->GetItem(\"MyBool\")->Value.boolVal ? 1 : 0;

hvis du vil være lidt mere med undervejs kan du forsøge.

CComVariant vtValue = spRecordSet->Fields->GetItem(\"MyBool\")->Value;
ATLASSERT(VT_BOOL == vtValue.vt);
int iValue = vtValue.boolVal;

Anvender altså alm. ADO-recordsets. Hvis du ikke gider det, så kan du jo forsøge med ATL\'s OLEDB-consumers. Jeg kan ikke huske - men tror at - BIT\'en mappes over til en BOOL, som ca. er det samme som en C++ bool.
Avatar billede soepro Nybegynder
29. november 2000 - 10:40 #2
Prøv med ->AsString eller ->AsVariant til en char[] - så kan du selv \"bit-mappe\" dig frem til værdien vha. & operanden.
Avatar billede madsjakob Nybegynder
29. november 2000 - 17:50 #3
Eller prøv at ændre i databasen, så værdien bliver en int eller char, det skulle der ikke være problemer med at læse.
/MJ
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