![](https://img-bbs.csdn.net/upload/201403/28/1395981294_994997.jpg)
分享个bcb作的上传函数
bool__fastcallTForm2::Upfile(void)
{
TFileStream*MyFStream;
TFileStream*MyFStream2;
TFileStream*FieldStrm;
TFileStream*Buffer;
intbufsize=0xF000;
intn=0xF000;//每次上传文件流为61440byte=$F000
intCounter;
intpost=0;
MyFStream=newTFileStream(Edit1->Text,fmOpenRead);
Counter=MyFStream->Size;
MyFStream2=MyFStream;
byte*fileData;
fileData=newbyte[Counter];
Stringfilename;
Stringfiletype;
filename=MyFStream->FileName;
MyFStream->Read(fileData,Counter);
AnsiStringSQLStr,rq;
AnsiStringoldver,newver,softname,tempmem,tempvid,temptime;
AnsiStringtemppath;
tempvid=FormatDateTime("MMDDhhmmss",Now());
Efileno->Text=tempvid;
oldver=Coldver->Text.Trim();
newver=Enewver->Text.Trim();
temppath=Efilepath->Text.Trim();
Efilesize->Text=Counter;
softname=Efilename->Text;
tempmem=Mfilememo->Text;
temptime=FormatDateTime("YYYY-MM-DDhh:mm:ss",Now());
SQLStr="insertintoUpdatesoft(v_id,old_ver,new_ver,softname,path,FILESIZE,memo,UPTIEM)values('"+tempvid+"','"+oldver+"','"+newver+"','"+softname+"','"+temppath+"','"+Counter+"','"+tempmem+"','"+temptime+"')";
Form2->Memo1->Lines->Add(SQLStr);
if(DM->ADOConnection->Connected)
{
if(DM->QueryExecute(SQLStr))
{
Form2->Memo1->Lines->Add("数据插入成功");
}
}
AnsiStringsSQL;
sSQL.sprintf("Select*FromUpdatesoftWherev_id='%s'",tempvid);
if(!DM->QueryOpen(sSQL))
{
ShowMessage("未找到记录!");
returnfalse;
}
if(!DM->QuerySQL->FieldByName("SOFT")->IsNull)
{
ShowMessage("KONG");
returnfalse;
}
DM->QuerySQL->Edit();
//DM->ADOQuery1->Edit();
TBlobField*pField=(TBlobField*)DM->QuerySQL->FieldByName("SOFT");
//pField->Assign(fileData);
pField->LoadFromStream(MyFStream2);
DM->QuerySQL->Post();
MyFStream2->Free();
}
|