Solved

CRecordet and CLongBinary (BLOB problem)

Posted on 1998-08-20
1
294 Views
Last Modified: 2013-11-20
How do I store a blob through ODBC !
I got a CLongBinary object in a derived CRecordset and a BMP-file on disk.
1. - How do I load the BMP into the CLongBinary-object
2. - Does the CLongBinary automaticly get into the base on CRecordset.update() ?
Codesample please !!

0
Comment
Question by:Jeb
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
1 Comment
 
LVL 4

Accepted Solution

by:
piano_boxer earned 70 total points
ID: 1321089
Instead of using the CLongBinary class use CByteArray. In this I will name this as m_rgBin.

To save a block of binary data:

*** Before this open recordset and make a call to AddNew()
*** or Edit().

// First set size of CByteArray to the size needed.
rs.m_rgBin.SetSize( nSizeNeeded );

// If you are updating an existing record,
// check if it has changed.
// Otherwize ommit this test.
if(memcmp(&rs.m_rgBin[0], pMyData, rs.m_rgBin.GetSize()))
{
    // Its changed.
    // Copy the memory block into the CByteArrar object
    memcpy(&rs.m_rgBin[0], pMyData, rs.m_rgBin.GetSize());

    // Flag field as having a value, and dirty
    rs.SetFieldNull(&rs.m_rgBin, FALSE);
    rs.SetFieldDirty(&rs.m_rgBin, TRUE);
}

// NOTE: If you want to clear the field in the database
//       make this call: rs.m_rgBin.SetSize(0) and also
//       do the SetFieldDirty() call.

*** Somewhere after this call update to store the data.

---
To load a block of binary data:

// Are the field empty?
if(rs.m_userData.GetSize())
{
    // No, copy to our local buffer pMyData
    memcpy(pMyData, &rs.m_rgBin[0], rs.m_rgBin.GetSize());
}
else
{
    //
    // TODO: Insert code for handling empty field from database.
    //
}

------
THATS IT !!!!!!!!

The key to all this is the two functions SetFieldNull() and SetFieldDirty();
0

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Named range not carried over 10 66
Detect file exist or not 3 202
SQUD PROXY SERVER, UNIX, SLL/HTTPS 5 116
how to use laptop or pad camera in vb.net windows application 2 107
In this article, I'll describe -- and show pictures of -- some of the significant additions that have been made available to programmers in the MFC Feature Pack for Visual C++ 2008.  These same feature are in the MFC libraries that come with Visual …
This is to be the first in a series of articles demonstrating the development of a complete windows based application using the MFC classes.  I’ll try to keep each article focused on one (or a couple) of the tasks that one may meet.   Introductio…
This video will show you how to get GIT to work in Eclipse.   It will walk you through how to install the EGit plugin in eclipse and how to checkout an existing repository.
In an interesting question (https://www.experts-exchange.com/questions/29008360/) here at Experts Exchange, a member asked how to split a single image into multiple images. The primary usage for this is to place many photographs on a flatbed scanner…

733 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question