读书人

zzbinfo .求解.刚才一贴已结.该怎么处

发布时间: 2012-04-13 13:50:24 作者: rapoo

zzbinfo ..求解...刚才一贴已结.
以下是我将文件写入数据库的完整代码...用的是oracle数据库.

C/C++ code
AnsiString sExepath = ExtractFileDir(Application->ExeName) + "\\Report" ;    WIN32_FIND_DATA FindData;    TMemoryStream *Inifile = new TMemoryStream();    memset(&FindData,0,sizeof(FindData));    AnsiString SearcePath = sExepath   +   "\\";    HANDLE hFind = FindFirstFile((SearcePath + "*.cpt").c_str(),&FindData);    bool bFindNext=false;    if(hFind!=INVALID_HANDLE_VALUE)    bFindNext = true;    try    {         while(bFindNext)         {             AnsiString Txtname = FindData.cFileName;             Inifile->LoadFromFile(SearcePath + Txtname);             qryTmp->Append();            // TBlobField *qryBlob = (TBlobField *)qryTmp->FieldByName("cpt");             qryTmp->FieldByName("cptname")->AsString = Txtname;             qryTmp->Parameters->ParamByName("cpt")->LoadFromStream(Inifile,ftBlob);             qryTmp->Post();             bFindNext = FindNextFile(hFind,&FindData);         }    }     __finally    {        FindClose(hFind);        delete Inifile;    }

qryTmp 在窗体show事件中已经打开..所以我这里直接append.

执行过程中..提示:qryTmp:Parameter 'cpt' not found;

我的report表结构如下:
SQL code
 create table report(          cptname varchar2(200) not null,          cpt blob,          name varchar2(200),          constraint pk_report primary key          (cptname)          )


百度无果...所以还是前来请教...

[解决办法]
cpt是一个Field吧,又不是参数,写成Parameters肯定找不见撒。

提交的部分改成:
C/C++ code
qryTmp->Append();qryTmp->FieldByName("cptname")->AsString = Txtname;TBlobField *pField = (TBlobField *)qryTmp->FieldByName("cpt");TADOBlobStream *pMem = new TADOBlobStream(pField, bmWrite);pMem->Seek(0, soFromBeginning);Inifile->SaveToStream(pMem);delete pMem;qryTmp->Post();
[解决办法]
象妖哥那样试试,你得"cpt"不是参数吧??

读书人网 >C++ Builder

热点推荐