ADOQuery查询Access,用GetFieldData方法取不到文本类型字段的数据.
BeRoy 2007-07-09 10:02:15 代码:
-----------------------------------------------------
ADOConnection1->ConnectionString=FormMain->strConnect;
ADOConnection1->Connected=true;
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
//票据名,状态
ADOQuery1->SQL->Add("select NAME,STATUS from TICKET");
ADOQuery1->Open();
BYTE nStatus ;
WCHAR strName[128] ;
memset(strName,0,sizeof(WCHAR)*128);
ListView1->Enabled=false;
AnsiString str1;
while(!ADOQuery1->Eof)
{
ADOQuery1->GetFieldData(1,strName); //这里调试发现strName里面
//数据长度根本不对,内容也不对
ADOQuery1->GetFieldData(2,&nStatus);
TListItem *list=ListView1->Items->Add();
list->Caption=WideString(strName);
list->SubItems->Add(nStatus==0?"有效":"停用");
ADOQuery1->Next();
}
ListView1->Enabled=true;
--------------------------------------------------
我的环境是cb6 update4, access 2003.winXp home.
查询的那张表,NAME和STATUS字段分别是 文本类型和BYTE类型.
这段代码不做更改,在CB2006下就是对,但我只能用CB6