Dao returns char* when it should be a BSTR, why?
Noel Burton-Krahn -- noel@harleystreet.com
Friday, November 15, 1996
Environment: MSVC 4.0 / Win95
CDaoRecordset::GetFiledValue() fills in a COLEVariant which it *says* is a
BSTR, but really it's just a char*. How can I force this char* into a BSTR
when VARIANTs don't seem to know anything about char*'s?
CDaoDatabase db;
db.Open("mydb.mdb");
CDaoRecordset rec(&db);
COLEVariant v;
rec.Open(dbSnapshot, "select * from Person");
rec.GetFieldValue("LastName", v);
// PROBLEM: v.vt == VT_BSTR, but v.bstrVal is a char*. Lies, all lies!
TIH
--Noel
Dan Kirby -- dkirby@accessone.com
Sunday, November 17, 1996
Take a look at article Q140599 in the Microsoft Developer Knowledgebase
for some insights. Basically DAO works with ANSI BSTRs in ANSI builds.
You can use the SysAllocString to convert to from a char * to a BSTR.
--dan
----------
> From: Noel Burton-Krahn
> To: 'mfc'
> Subject: Dao returns char* when it should be a BSTR, why?
> Date: Friday, November 15, 1996 9:27 AM
>
> Environment: MSVC 4.0 / Win95
>
> CDaoRecordset::GetFiledValue() fills in a COLEVariant which it *says* is
a
> BSTR, but really it's just a char*. How can I force this char* into a
BSTR
> when VARIANTs don't seem to know anything about char*'s?
>
> CDaoDatabase db;
>
> db.Open("mydb.mdb");
>
> CDaoRecordset rec(&db);
> COLEVariant v;
>
> rec.Open(dbSnapshot, "select * from Person");
> rec.GetFieldValue("LastName", v);
> // PROBLEM: v.vt == VT_BSTR, but v.bstrVal is a char*. Lies, all lies!
>
>
> TIH
> --Noel
>
>
>
>
| Вернуться в корень Архива
|