ADO VC Extentionを利用して、メモ型フィールドにアクセスする際のCAORecordBindingクラスの派生の方法


maelstrm  2003-05-24 05:14:52  No: 51476  IP: [192.*.*.*]

みなさん、始めまして。

Win2000 + VC++ ver.6 でADO VC Extentionを利用して、

Access(2000)形式のデーターベースにアクセスしています。

で、memo型のフィールドを読み取りたいと思っていますが、

この場合のCADORecordBindingクラスの派生クラスの正しい作り方

が分かりません。

どなたか、サンプル等ご存知ないでしょうか?

編集 削除
maelstrm  2003-05-24 15:18:51  No: 51477  IP: [192.*.*.*]

追加です・・・
CADORecordBindingクラスを自動作成するツールを使って、
メモ型のフィールドのみのMDBファイルを投げ込んだところ、

--始まり--

#ifndef _AAA_H_
#define _AAA_H_

#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000

// NOTE : In order to use this code against a different version of ADO, the appropriate
// ADO library needs to be used in the #import statement
#import "C:\Program Files\Common Files\System\ADO\msado15.dll" rename_namespace("ADOCG") rename("EOF", "EndOfFile")
using namespace ADOCG;
#include "icrsint.h"

#include "oledb.h"

// aaa.h : header file
//

/////////////////////////////////////////////////////////////////////////////
// aaa class

class aaa : public CADORecordBinding
{
BEGIN_ADO_BINDING(aaa)
  ADO_FIXED_LENGTH_ENTRY    (  1, adInteger, m_lID, m_lIDStatus, FALSE)
  ADO_VARIABLE_LENGTH_ENTRY2(  2, adLongVarWChar, m_szaaa, sizeof(m_szaaa), m_laaaStatus, FALSE)
END_ADO_BINDING()

//Attributes
public:
  LONG      m_lID;
  ULONG      m_lIDStatus;

         //これが固定になってしまう
  CHAR      m_szaaa[8192];

  ULONG      m_laaaStatus;
};

//{{AFX_INSERT_LOCATION}}
// Microsoft Developer Studio will insert additional declarations immediately before the previous line.

#endif // !_AAA_H_


--終わり--

となってしまい、結局、上では8KBまでのテキストしか操作
出来ないことになっています。

一応、可変長なのでこれではまずいと思うのですが・・・

編集 削除