Gå til innhold

Lagre et int array i SQL varbinary (C++)


Anbefalte innlegg

Videoannonse
Annonse
Noen som kan hjelpe meg med en god måte å lagre et rimelig stort array som varbinary i SQL, og så hente det opp igjen?

 

:)

Tja, siden du bruker C++ vet du sikkert hvor stor inten din er? 4 eller 8 bytes?

Styggemåten er kanskje å dytte dataene over i et bitmap, og deretter lagre dette... Det er såpass hackete at det ikke er store faren for at andre vil forstå koden din uten gode kommentarer. På oppsiden bør det være enkelt å finne kode-eksempler.

 

Can´t believe I suggested that,

 

- grå -

Lenke til kommentar
Det er såpass hackete at det ikke er store faren for at andre vil forstå koden din uten gode kommentarer.

 

Fant ut at Byte array kan brukes, så gjorde det slik jeg:

array<Byte>^ xx::intToByte(array<int>^ ia) {
   int bytes = ia->Length * sizeof(int);
   int ints = ia->Length;
   array<Byte>^ ba;

   IntPtr heap = Marshal::AllocHGlobal(bytes);
   Marshal::Copy(ia, 0, heap, ints);
   Array::Resize(ba, bytes);
   Marshal::Copy(heap, ba, 0, bytes);
   Marshal::FreeHGlobal(heap);

   return ba;
}

 

Nå var det en enkel sak å få det inn i databasen, og det ser ut til å virke. Er litt newbie på C++ og NET greia så om det finnes mer politisk korrekte løsninger så er jeg åpen for det.

 

Litt hijack, jeg bruker alltid SqlCommand og ExecuteXxxx når jeg gjør database operasjoner. Ville jeg hatt noen positiv effekt av å bruke DataAdapter osv i stedet?

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...