上網找了很多資料,關于自動升級的實現都是基于web的,對我手頭上的基于LAN的程序沒有幫助,既然程序是數據庫的應用,那為什么不把升級的程序放到數據庫里呢?mysql的blob字段有長度限制,大概800K左右,要做分段處理,但BCB的Stream機制可以很方便的解決問題。
??????? TMemoryStream* memStream = new TMemoryStream();
??????? TFileStream* fStream = new TFileStream("update.exe",fmCreate);
??????? while (!update->Eof)
??????? {
????????? update->GetBlob("Data")->SaveToStream(memStream);
????????? memStream->SaveToStream(fStream);
????????? update->Next();
??????? }
??????? delete memStream;
??????? delete fStream;
多優雅的處理,BCB寫數據庫應用好得沒話說。
??????? TMemoryStream* memStream = new TMemoryStream();
??????? TFileStream* fStream = new TFileStream("update.exe",fmCreate);
??????? while (!update->Eof)
??????? {
????????? update->GetBlob("Data")->SaveToStream(memStream);
????????? memStream->SaveToStream(fStream);
????????? update->Next();
??????? }
??????? delete memStream;
??????? delete fStream;
多優雅的處理,BCB寫數據庫應用好得沒話說。