how to access blobs using ADO?

how to access blobs using ADO?

Post by msnews.microsoft.com » Sun, 17 Jun 2001 01:25:31



Im using the following to bind data from a recordset, and then I can open
close, modify etc everything just fine.  But what do I bind to the recordset
in order to store a blob on it?  Another program needs to store and recall a
file stored within the database, but I have no clue what to bind it to.  Any
help would be most appreciated.

class CEventHistory : public CADORecordBinding
{
BEGIN_ADO_BINDING(CEventHistory)
   file://Column empid is the 1st field in the recordset
   ADO_VARIABLE_LENGTH_ENTRY2(1, adInteger, m_sz_HistoryID,
         sizeof(m_sz_HistoryID), lemp_HistoryID, TRUE)
   ADO_VARIABLE_LENGTH_ENTRY2(2, adInteger, m_sz_ProductID,
         sizeof(m_sz_ProductID), lemp_ProductID, TRUE)
   ADO_VARIABLE_LENGTH_ENTRY2(3, adInteger, m_sz_EventID,
         sizeof(m_sz_EventID), lemp_EventID, TRUE)

//   ADO_VARIABLE_LENGTH_ENTRY2(4, adVarChar, m_sz_Data,
//         sizeof(m_sz_Data), lemp_Data, TRUE)
   ADO_VARIABLE_LENGTH_ENTRY2(5, adChar, m_sz_Text,
         sizeof(m_sz_Text), lemp_Text, TRUE)
      ADO_VARIABLE_LENGTH_ENTRY2(6, adDBDate, m_sz_Date,
         sizeof(m_sz_Date), lemp_Date, TRUE)
 ADO_VARIABLE_LENGTH_ENTRY2(7, adDBTime, m_sz_Time,
         sizeof(m_sz_Time), lemp_Time, TRUE)

END_ADO_BINDING()

public:

 int m_sz_EventID;
 int lemp_EventID;
 int m_sz_HistoryID;
 int lemp_HistoryID;
 int m_sz_ProductID;
 int lemp_ProductID;
 CTime m_sz_Time;
 CTime lemp_Time;
 CTime m_sz_Date;
 CTime lemp_Date;
 char m_sz_Text[51];
 char lemp_Text[51];

Quote:};

 
 
 

1. Access to Paradox BLOB fields using ADO 2.5

Can anybody from ADO-Paradox gurus give me any clear explanation about
access to Paradox BLOB fields by ADO 2.5 ?

I tried to work with Paradox tables from a VB application using ADO,
and everithing works fine except for BLOBs: the Fields collection of
an opened ADO recordset does not contain any BLOB fields.

MSDN KB confirms this situation:

Q300189: PRB: Paradox ISAM Does Not Support Some Paradox 4.x Types
..
Microsoft Jet versions 3.51 and 4.0 provide a Paradox ISAM driver that
allows access to Paradox 4.x tables. However, the Paradox ISAM driver
does not support the BINARY BLOB (type B) Paradox 4.x data type. Thus,
fields that use this data type will not be available in Visual Basic.

But Delphi's 5 ADO objects (e.g. TADOBlobStream) handle the BLOB
fields !!! May be there is any trick to get an access to Paradox BLOBs
by ADO (some settings for the ADO connection, etc.) ?

I have ADO 2.5 and Delphi 3 (not Delphi 5 !) including native BDE
installed. ADO connection strings I tried to connect to Paradox are:

1) ODBC:
Driver={Microsoft Paradox Driver (*.db )}; DBQ=C:\PdxDB;
DefaultDir=C:\PdxDB;

2) Jet 4.0
Provider=Microsoft.Jet.OLEDB.4.0; Extended Properties=Paradox 5.x;
Data Source=C:\PdxDB;

Thank you for help.

2. Sybase System 4 - cursors ?

3. Using ADO to access blob datatype in DB2 UDB 6.1

4. WITH CUBE and Where clause

5. retrieving blob using ADO

6. Novice needs advice on update statement

7. How to write Memo BLOB to DB using ADO -- how to convert binary to VARIANT

8. Newbie:Linked Server Error

9. How to retrieve Blob data in Oracle using ado

10. Insert blob data into oracle using ADO

11. How to Operate Oracle BLOB Field Using ADO or OLEDB

12. Using BLOBS with ADO